my $script_content = 'print STDERR "foo"'; open(SAVEERR, ">&STDERR"); close(STDERR); open(STDERR, '>', \my $buf) or die $!; eval $script_content; print "buf = $buf\n"; # "buf = foo"