#!perl -w
use strict;
use IPC::Open3;
use Symbol qw(gensym);
my($wtr, $rdr, $err) = (gensym, gensym, gensym);
my $pid = open3($wtr, $rdr, 0, "perl", "-e",
'print $_ qq{x\n} x (1024 * 1024) for \*STDOUT, \*STDERR');
close $wtr;
() = <$rdr>;
warn "waitpid $pid ...\n";
waitpid $pid, 0;
warn $?, "\n";
__END__
#!perl -w
use strict;
use IPC::Open3;
use Symbol qw(gensym);
my($r, $w, $e) = (gensym, gensym, gensym);
my $pid = open3($r, $w, $e, "perl", "-e",
'print $_ qq{x\n} x (1024 * 1024) for \*STDOUT, \*STDERR');
#close $w; # => SIGPIPE
#close $e; # => SIGPIPE
warn "waitpid $pid ...\n";
waitpid $pid, 0;
warn $?, "\n";
__END__