With the help of user ikegami over at stackoverflow. The following solutions works.
[- use warnings; use strict; use IPC::Open3; use POSIX; $http_headers_out{'Content-Type'} = "text/plain"; my $cmd = 'ls'; open(my $fh, '>', '/dev/null') or die $!; dup2(fileno($fh), 1) or die $! if fileno($fh) != 1; local *STDOUT; open(STDOUT, '>&=', 1) or die $!; my $pid = open3(*HIS_IN, *HIS_OUT, *HIS_ERR, $cmd); close(HIS_IN); # give end of file to kid, or feed him my @outlines = <HIS_OUT>; # read till EOF my @errlines = <HIS_ERR>; # XXX: block potential if mas +sive print OUT "STDOUT: ", @outlines, "\n"; print OUT "STDERR: ", @errlines, "\n"; waitpid( $pid, 0 ); my $child_exit_status = $? >> 8; print OUT "child_exit_status: $child_exit_status\n"; -]
In reply to Re^3: perl / embperl -- IPC::Open3;
by djlerman
in thread perl / embperl -- IPC::Open3;
by djlerman
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |