use File::Find; find(\&wanted, './'); sub wanted { return unless /\.out$/; open F, '<', $_ or return; while (defined (my $line = )) { print "ACTION!" if $line =~ /error/; } close F; }