perl -MIO::Scalar -le 'my $s; $SH = IO::Scalar->new(\$s); print $SH "foo"; print $s' #### use IO::Scalar; my $s; my $SH = IO::Scalar->new(\$s); { local *STDOUT = $SH; print "foo\n"; } print $s; #### use IO::Scalar; $string = tie *STDOUT, 'IO::Scalar'; print "foo\n"; print STDERR '$string: ', $string; # Must use stderr as stdout is tied.