sub get_test_dirs { my $dir = shift or die "no directory specified."; opendir (DIR, $dir) or die "couldn't open directory: $dir"; my @directories_to_search = ("$dir"); my %dirs = (); find( sub { if (-d $File::Find::name) { # it's a dir my $current_dir = $File::Find::name; if ( (-f "$current_dir" . '/before.html') && (-f "$current_dir" . '/after.html') ) { #before and after files exist $dirs{$current_dir} = 1; } #end check if file } # end check if directory }, @directories_to_search ); my @dirs = keys %dirs; return @dirs; }