I have a script which poplulates filenames and last modified time of the respective file under a particular directory. I have used DosGlob module to specify the regex.
Sample directory structure is:
//share16/ABC/X/Output/1/
//share16/ABC/X/Output/2/
//share16/ABC/Y/Output/1/
//share16/ABC/Y/Output/2/
Below is the code which does the above and there is further code after this which is out of present context.
use File::DosGlob 'glob'; my @dir_regex = glob "//share16/ABC/*/Output/"; for my $dir (@dir_regex) { find({ wanted => \&process_file, no_chdir => 1 }, $dir) or die $!; } sub process_file { my $dummy = $_; if (-f $dummy) { my $filename = "//share16/TOOLS/report.txt"; open(my $fh, '>>', $filename) or die "Could not open file '$filename' +$!"; my $last_mod_time = ctime(stat($dummy)->mtime); print $fh "$last_mod_time $dummy\n"; } close $fh; }
The script successfully lists down the files under all folders (folder 1, folder 2) under the first directory X but fails immediately when it starts reading the folder Y.
Error: No such file or directory at \\share16\traverse4.pl line 5.I am clueless as to why it is failing as I have tried hardcoding the foldername in @dir_regex but it still fails after listing the files under the first directory.
In reply to Perl DosGlob fails after first evaluation of regex by syedirfan23
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |