File handles can be opened to ``in memory'' files held in Perl scalars via: open($fh, '>', \$variable) || .. Though if you try to re-open STDOUT or STDERR as an ``in memory'' file, you have to close it first: close STDOUT; open STDOUT, '>', \$variable or die "Can't open STDOUT: $!";