use Carp; use IO::Handle; use IPC::Open3; use strict; my $STDOUT = IO::Handle->new; my $STDERR = IO::Handle->new; open($STDOUT, ">&STDOUT") || croak( 'Cannot duplicate STDOUT to file handle - ', $! ); open($STDERR, ">&STDERR") || croak( 'Cannot duplicate STDERR to file handle - ', $! ); eval { open3( '<&STDIN', $STDOUT, $STDERR, "some_application" ) || die $!; waitpid(-1, 0); }; croak( 'Cannot execute command - ', $@ ) if $@; # The STDOUT and STDERR output of some_application # execution now resides in $STDOUT and $STDERR # respectively. eg. print $_ foreach <$STDOUT>
As always with Perl, TMTOWTDI.
In reply to Re: Pipe, fork, exec and red-hot pokers.
by rob_au
in thread Pipe, fork, exec and red-hot pokers.
by hagus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |