You are fighting the module. And you are doing a lot of unneccessary work. Consider
use File::Find;
my @found;
my $path = 'd:\env\videos';
my $target = '2012.avi';
find ( sub
{
# We're only interested in directories
return
unless -d $_;
# Bail if there is an .ignore here
return
if -e "$_/.ignore";
# Add to the results if the target is found here
push @found, $File::Find::name
if -e "$_/$target";
}, $path);
print "@found";
D:\ENV>perl pm10.pl
d:\env\videos/2012
D:\ENV>echo.>d:\env\videos\2012\.ignore
D:\ENV>perl pm10.pl
D:\ENV>
holli
You can lead your users to water, but alas, you cannot drown them.