Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Redirect STDOUT in CGI App

by kennethk (Abbot)
on Jul 28, 2011 at 15:30 UTC ( [id://917285]=note: print w/replies, xml ) Need Help??


in reply to Redirect STDOUT in CGI App

The easiest way is to do it is in the shell. However, if you are looking to wrap an existing CGI script to check/filter its output before forwarding it on entirely in Perl, I would clone STDOUT and then redirect the original into a scalar for whatever inspection was appropriate/necessary. Cloning and redirecting is discussed in good detail in open.

Replies are listed 'Best First'.
Re^2: Redirect STDOUT in CGI App
by rpike (Scribe) on Jul 28, 2011 at 16:10 UTC
    Would u happen to have a small example of saving, redirecting STDOUT to a file, and restoring STDOUT back? Thanks.
      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";

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://917285]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (2)
As of 2024-04-24 23:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found