use strict; use warnings; use Cwd; @ARGV == 1 or die "USAGE: $0 \n"; printf "Searching directory '%s' for the line '%s':\n\n", Cwd::getcwd(), $ARGV[0]; my $found = 0; opendir my $dh, '.' or die "Unable to open the current directory: $!"; while (my $file = readdir($dh)) { if (-f $file) { open my $fh, '<', $file or die "Unable to open file '$file' for reading: $!"; while (my $line = <$fh>) { chomp $line; if ($line eq $ARGV[0]) { print "Found match in file '$file'\n"; $found = 1; last; } } close $fh or die "Unable to close file '$file': $!"; } } closedir $dh or die "Unable to close the current directory: $!"; print "No matches found\n" unless $found;