use File::Find my @skip = qw( skip1 skip2 skip3 ); find( \&wanted, $directory ); sub wanted { return if grep { -d $_ and $_ eq $File::Find::name } @skip; ... }