What Ken said: while (<$ch>) { print $fh "$PaddedDateStr $_"; }
On Tue, Oct 5, 2021 at 2:46 PM Ken Slater <kenslate...@gmail.com> wrote: > > > On Tue, Oct 5, 2021 at 3:35 PM reader <hp...@fastmail.fm> wrote: > >> 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; >> } >> ------- ------- ---=--- ------- ------- >> At first glace, looks like $log was used instead of instead of $fh. >> > Ken > -- a Andy Bach, afb...@gmail.com 608 658-1890 cell 608 261-5738 wk