@argv = qw(/bin/echo hello world); open(SAVOUT, '>&STDOUT') or die $!; open(STDOUT, '+>', "/tmp/stdout.log") or die $!; system(@argv); print SAVOUT "before=", tell(STDOUT), "\n"; seek(STDOUT, 0, 0) or die $!; print SAVOUT "after=", tell(STDOUT), "\n"; while (1) { read STDOUT, $_, 8192; last unless $_; print SAVOUT "stdout=", $_; } print SAVOUT "at end=", tell(STDOUT), "\n"; close STDOUT;