my $siteid=$q->param('siteid'); if(!$siteid) { #complain } elsif(grep {$siteid eq $_} @directory) { # taken } else { mkdir 0755 $siteid or warn("Foo: $!") push @directory, $siteid; # or whatever }