c:\test>perl use File::Temp qw( tempfile ); use File::Spec qw( devnull ); $|=1; my $code =<<'CODE'; $|=1; print "ABC\n"; print STDERR "012\n"; print "IJK\n"; print STDERR "345\n"; print "XYZ\n"; print STDERR "678\n"; CODE # create a temporary perl script file my ($fh1, $scriptname) = tempfile( 'yap_XXXX', SUFFIX => '.pl'); print {$fh1} $code; close( $fh1 ); my $perl = $^X; my $devnull = File::Spec->devnull; print "No redirect: \n"; print qx{ $perl $scriptname }, "\n"; print "Redirect errors to devnull: \n"; print qx{ $perl $scriptname 2>$devnull }, "\n"; print "Redirect merging stderr and stdout: \n"; print qx{ $perl $scriptname 2>&1 }, "\n"; ^Z No redirect: 012 345 678 ABC IJK XYZ Redirect errors to devnull: ABC IJK XYZ Redirect merging stderr and stdout: ABC 012 IJK 345 XYZ 678