in reply to how to use perl variable in system command to run on unix
Fwiw
use Path::Class qw(dir file); use Time::localtime; my $dirpath = dir("/waslogs1/vfoneLog/cposapp"); my $outfile = file("/home/cpos/CRM_Reports/output/filelist.txt")->open +w; my @names = grep { my $st = $_->stat or die $!; localtime($st->mtime)->mon == 8 && # 8 means September localtime($st->mtime)->mday == 3 } $dirpath->children; $outfile->print($_->basename, "\n") for @names; $outfile->close or die $!;
Ok, it's a bit longer. However you don't suffer any problems like
- Incompatible versions of awk, ls
- File names with spaces, or file names which have a date in them
- Executable shell code in your $arr[2] variable
- Flexible handling of error conditions like when one of those two path names is missing.
- I think there is more
In Section
Seekers of Perl Wisdom