I have a strange issue with my code that I cannot really understand.I've written a code that searches a given string in all the files in given directory.So far so good.The program works only if I type the directory where the script is.If I choose another directory I get the msg "Couldn't open that file perl_ex1.pl: No such file or directory at ex1.pl line 20, <STDIN> line 2." for example and that file obviously exists in the given directory. Any clarification would be useful.
Here is my code:#!/usr/bin/perl use warnings; use strict; print "Write the directory where you want to search: \n"; my $dir=<STDIN>; chomp $dir; print "Write the string you want to search for: \n"; my $string=<STDIN>; chomp $string; opendir DH, "$dir" or die "Couldn't open that directory $dir: $!"; while($_=readdir(DH)){ next if $_ eq "." or $_ eq ".."; if (-d $_){ print "$_ is a directory\n"; next; } open FILE, "$_" or die "Couldn't open that file $_: $!"; for my $i (<FILE>){ if($i=~/($string)/){ print "I have found |$string| in |$_| file on line:\n$i\n"; last; } } }
In reply to Perl script does not work on other directories? by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |