my @required = qw(name site siteid email email2 pass repass); for (@required) { next if $q->param($_); &error("You forgot some required fields"); } $q->param('email') eq $q->param('email2') or &error("The two e-mail addresses you entered don't match"); $q->param('pass') eq $q->param('repass') or &error("Your passwords don't match"); my ($site_id) = $q->param('siteid') =~ /^\s*(\d+)\s*$/; $site_id or &error("Invalid Site ID"); -d '/path/to/sites/'.$site_id or &error("Directory already exists"); # directory doesn't exist, so do whatever...