my $base_dir = '/directory/subdirectory/webstuff'; my %exclude = map { $_ => undef } qw(. .. zz); opendir my($dh), $base_dir; my @dir = grep { not exists $exclude{$_} and -d "$base_dir/$_" } readdir $dh; closedir $dh; find( \&findstuff, map "$base_dir/$_", @dir);