use File::Find; my @found; find({ wanted => sub { if (/\.bat$/i) # Catches 'bat' and 'BAT' { push(@found, $File::Find::name); } } }, $dir); print "$_\n" foreach (@found);