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