my $module_stderr = ''; close STDERR; open(STDERR, '>', \$module_stderr); open F, "perl -e \"warn 'hi'\" |" or die "$!"; while( ) { print 'out -> '.$_."\n"; } close F; print "err -> ". $module_stderr; print "\n"; open(STDERR, '>', 'testfile') or die "$!"; open F, "perl -e \"warn 'hi'\" |" or die "$!"; while( ) { print 'out -> '.$_."\n"; } close F; close STDERR; print "err -> ". `cat testfile`; #### err -> err -> hi at -e line 1.