in reply to Re: Re^4: Use of IPC::Run rather than system()
in thread Use of IPC::Run rather than system()
This seems to have worked the best of all, after I turned off buffering for STDOUT/STDERR, with code such as this:
my ($ofh) = select(STDOUT); $| = 1; select($ofh); $ofh = select(STDERR); $| = 1; select($ofh); my ($out, $err); run ( [ '/usr/sbin/pkgrm', 'VRTSvxvm' ], '>', sub { $out .= $_[0]; print $_[0] }, '2>', sub { $err .= $_[0]; print $_[0] }, );
Now, if the program I was running demands that it connects to a pty before it will unbuffer STDOUT/STDERR properly, what could I do? I've tried the following, but it doesn't send any output to the screen:
use IPC::Run qw(run); my ($out, $err); run ( [ '/usr/sbin/pkgrm', 'VRTSvxvm' ], '>', sub { $out .= $_[0]; print $_[0] }, '>', '>pty>', '2>', sub { $err .= $_[0]; print $_[0] }, '2>', '>pty>' );
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Re: Re^4: Use of IPC::Run rather than system()
by IlyaM (Parson) on Jul 17, 2003 at 07:18 UTC |
In Section
Seekers of Perl Wisdom