my $dir = '.'; my $match = 'perl'; my @files = grep { -f } glob ( "$dir/*" ); for my $file(@files) { open my $fh, $file or next; print "Found match in $file\n" if grep{ /\Q$match\E/ }<$fh>; }