run cmd, writing output to log file

reader <[email protected]>
Newsgroups gmane.comp.lang.perl.beginners
Organization Still searching...
Message-ID <[email protected]>
Whenever I don't do  scripting for longish periods, next time I start
writing a perl script, an awful lot of useful info has flew right out
of my pea brain.

I was pretty sure I have written perl scripts that wrote to log files
with out problems but the script below does not.  Instead if throws
this error:

  Can't use string ("/home/reader/t/var/log/fetchmail"...) as a symbol
  ref while "strict refs" in use at ./pfetch line 18, <$ch> line 1.


pfetch script
-------       -------       ---=---       -------       ------- 

  #!/usr/local/bin/perl
  
  use strict;
  use warnings;
  
  my $cmd = "fetchmail -vvvc";
  
  my $PaddedDateStr = pd();
  
  open my $ch, '-|', "$cmd" or die
    "Can't open $cmd: $!";
  
  my $log = "/home/reader/t/var/log/fetchmail.log";
  open my $fh, '>>', "$log" or die
                  "Can't open $log: $!";
  
  while (<$ch>) {
    print $log "$PaddedDateStr $_";
  }
  
  print $log "\n";
  
  close $log;
  
  sub pd {
    my ($mon,$mday,$year,$hour,$min,$sec,$wday) =
                        (localtime(time))[4,3,5,2,1,0,6];
    $year -= 100;  ## gives 2 digit (with %02d)
    $mon  += 1;
  
    my  $PDS = sprintf "%02d%02d%02d:%02d%02d%02d %d",
               $year,$mon,$mday,$hour,$min,$sec,$wday;
    return $PDS;
  }
-------       -------       ---=---       -------       ------- 


-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.