Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: how to use perl variable in system command to run on unix

by betterworld (Curate)
on Sep 03, 2013 at 16:58 UTC ( #1052144=note: print w/replies, xml ) Need Help??

in reply to how to use perl variable in system command to run on unix


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

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1052144]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2018-03-24 11:21 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (298 votes). Check out past polls.