Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

run cmd, writing output to log file

4 views
Skip to first unread message

reader

unread,
Oct 5, 2021, 3:45:04 PM10/5/21
to begi...@perl.org
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;
}
------- ------- ---=--- ------- -------

hput

unread,
Oct 7, 2021, 2:45:04 PM10/7/21
to begi...@perl.org
Ken Slater <kensl...@gmail.com> writes:


[...] snip


>> ------- ------- ---=--- ------- -------
>> At first glace, looks like $log was used instead of instead of $fh.
>>

Andy Bach <afb...@gmail.com> writes:

> What Ken said:
>
> while (<$ch>) {
> print $fh "$PaddedDateStr $_";
> }

Thx to both of you. And indeed the filehandle works.

Having different troubles now with that fixed but I'm wallowing around
with it a while ... maybe get it right before bothering the list again.

0 new messages