use IO::Handle; my $file = 'output.dat'; open(OUTPUT, ">$file") || die $!; STDOUT->fdopen(\*OUTPUT, "w") || die $!; open STDERR, ">&STDOUT"; print "This is STDOUT\n"; print STDERR "This is STDERR\n"; warn "This is a warning\n";