open(STDOUT, '>-'); open(STDOUT, '>&=1'); #### use POSIX; local $/ = undef; my $chldoutput; my $TRAP = POSIX::tmpnam(); print "Gonna use $TRAP\n"; open(SAVE1, ">&STDOUT"); open(SAVE2, ">&STDERR"); close(STDOUT); open(STDERR, ">$TRAP"); open(STDOUT, ">>$TRAP") || die("$!: $TRAP"); #+> didn't work eval "print STDERR 'Scary... ';print 'Waka waka!'"; close(STDOUT); close(STDERR); open(STDOUT, ">&SAVE1"); open(STDERR, ">&SAVE2"); open(INPUT, $TRAP) || die("$!: $TRAP"); $chldoutput = ; print "ABC: $chldoutput\n"; unlink($TRAP); #### -- perl -p -e "s/(?:\w);(st)/'\$1/mg"