I'm not sure it is correct syntax. From IPC::Run docs:
'>pty>' means '&>pty>', not '1>pty>' The pseudo terminal redirects both stdout and stderr unless you specify a file descriptor. If you want to grab stderr separately, do this: start \@cmd, '<pty<', \$in, '>pty>', \$out, '2>', \$err +;
So probably your code should look like (untested):
use IPC::Run qw(run); my ($out, $err); run ( [ '/usr/sbin/pkgrm', 'VRTSvxvm' ], '>pty>', sub { $out .= $_[0]; print STDOUT $_[0] }, '2>', sub { $err .= $_[0]; print STDERR $_[0] }, );
--
Ilya Martynov, ilya@iponweb.net
CTO IPonWEB (UK) Ltd
Quality Perl Programming and Unix Support
UK managed @ offshore prices - http://www.iponweb.net
Personal website - http://martynov.org
In reply to Re: Re: Re: Re^4: Use of IPC::Run rather than system()
by IlyaM
in thread Use of IPC::Run rather than system()
by gmarler
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |