use Tie::Handle::Scalar; { local *STDOUT; # Don't want to override it forever tie *STDOUT, 'Tie::Handle::Scalar', \my $variable; print "Hello, world!\n"; print STDERR "\$variable contains: $variable"; }