use CGI qw(:standard append add_parameter); use strict ; use warnings ; print CGI::header() ; my $out ; { local *STDOUT ; local *STDERR ; open (STDOUT,">>", \$out) ; open (STDERR,">>", \$out) ; select STDOUT; $| = 1; # make unbuffered select STDERR; $| = 1; # make unbuffered print "message1\n" ; warn "error1\n"; print "message2\n" ; } print "Result: $out\n";