in reply to Re: Redirect STDOUT in CGI App
in thread Redirect STDOUT in CGI App

Would u happen to have a small example of saving, redirecting STDOUT to a file, and restoring STDOUT back? Thanks.

Replies are listed 'Best First'.
Re^3: Redirect STDOUT in CGI App
by kennethk (Abbot) on Jul 28, 2011 at 17:02 UTC
    Literally copied from the link I provided above:

    #!/usr/bin/perl open(my $oldout, ">&STDOUT") or die "Can't dup STDOUT: $!"; open(OLDERR, ">&", \*STDERR) or die "Can't dup STDERR: $!"; open(STDOUT, '>', "foo.out") or die "Can't redirect STDOUT: $!"; open(STDERR, ">&STDOUT") or die "Can't dup STDOUT: $!"; select STDERR; $| = 1; # make unbuffered select STDOUT; $| = 1; # make unbuffered print STDOUT "stdout 1\n"; # this works for print STDERR "stderr 1\n"; # subprocesses too open(STDOUT, ">&", $oldout) or die "Can't dup \$oldout: $!"; open(STDERR, ">&OLDERR") or die "Can't dup OLDERR: $!"; print STDOUT "stdout 2\n"; print STDERR "stderr 2\n";