in reply to System() or the like
Yes.
I present thee with hoho_system(), it can be called with the silent option below to not additionally display output to stdout:
Or, it can also be noisy, and may be executed like so:
And for bonus points, I have included support for an optional global $logfile variable, which can be declared as the following optionally:
# on with the show, cider@compulsion.org
sub hoho_system { my ($cmd, $option) = @_; my ($returned_result); my $silent = 0; if ( defined($option) ) { if ( $option =~ m/silent/ ) { $silent = 1 +; } } if ( defined($logfile) ) { open LOG, "+>> $logfile"; print LOG "$cm +d: $_\n"; } open CMD, "$cmd |" or die "failure running $cmd: $!\n"; while(<CMD>) { print unless $silent; print LOG "$_"; $returned_result = "$_\n$returned_result"; } close CMD; if ( defined($logfile) ) { close LOG; } return $returned_result; }
Using arrays instead of scalars in multi-line responses would be advisable, and for such you may change the $returned_result references to @returned_result, and change the $returned_result assignment line to push @returned_result, "$_";
busunsl: switched pre tag to code tag. htmlism.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: System() or the like
by busunsl (Vicar) on Sep 18, 2001 at 13:13 UTC |