in reply to Perl script does not work on other directories?

though i am not sure if this the right approach, but you can do something like the following or get some ideas, who knows:
use strict; use warnings; use diagnostics; use File::Slurp; my @files = read_dir($ARGV[0]); #read files in dir into an array my $dir = $ARGV[0]; my $string = $ARGV[1]; my $file; my $line; foreach my $element (@files) { open $file, '<', "$dir/$element"; #open each file while (<$file>) { if ( $_ =~ $string ) { #match your string print "found $string in $element\n"; } } close $file; }
this will read each file into an array, then it will open each of those files and search for a match.

EDIT: in your test script in your original post, you may want to look into Cwd. i think that would allow you to get the current working directory AFTER you leave the dir that the script is in. and would only be slightly trivial to implement without a major code change