for my $file (@files) { my $has_dave; open my $fh, "<", $file or warn("Can't open $file - $!\n"), next; while (<$fh>) { last if $. > 20; $has_dave = 1 if /dave/i; } print "$file\n" unless $has_dave; }