use strict; use warnings; my $out ; { local *STDOUT ; local *STDERR ; open STDOUT, '>>', \$out or die "Can't open STDOUT: $!"; # line 28 open STDERR, '>>', \$out or die "Can't open STDERR $!"; # line 29 select STDOUT; $| = 1; # make unbuffered select STDERR; $| = 1; # make unbuffered print "message1\n" ; warn "error1\n" ; print "message2\n" ; } print "Result: $out \n" ;