Deb wrote:
> 
> I've got a script which opens a filehandle to write print statments to a file.
> But, I'm also running some system commands, and I would also like to send
> stdout and stderr to that filehandle.  I could just echo text to a file, or I
> could use a filehandle.  Which would be "better?"
> 
>     my $log = "/tmp/log.$$";
> 
>     open(LOG, ">$log");
>     print LOG "Commencing maintenance\n";
> 
> But, here's how I've handled stdout and stderr in a system statement:
> 
>     my $log = "/tmp/log.$$";
> 
>     system("path-to-command >> $log 2>&1");
> 
> Is there a way to use a filehandle instead?  Seems I'd have to take care of
> block and non-blocking I/O.  Methinks it may be simpler just to stick with
> printing directly to $log and not the FH, LOG.

You could do something like this:

use IPC::Open3;

my $log = "/tmp/log.$$";

open LOG, '>', $log or die "Cannot open $log: $!";
print LOG "Commencing maintenance\n";

my $pid = open3( 0, '>&LOG', 0, 'path-to-command' );



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to