Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
Welcome to the Monastery
 
PerlMonks  

Re: problems redirecting STDOUT and STDERR to a $variable

by philcrow (Priest)
on Feb 15, 2008 at 16:02 UTC ( #668158=note: print w/ replies, xml ) Need Help??


in reply to problems redirecting STDOUT and STDERR to a $variable

When you print without specifying a handle, output goes to the selected handle, which defaults to STDOUT. If you select STDERR, print goes there by default instead. For CGI to work, you must print what the browser receives on STDOUT.

One solution would be to reverse the order of the selects, so STDOUT is left selected after the hot buffering request. Normal practice is to store the return value of the first select and restore it after you finish messing with $|:

my $original_fh = select STDOUT; $| = 1; select STDERR; $| = 1; select $original_fh;
This works even if someone had already hijacked the default output handle.

Phil

The Gantry Web Framework Book is now available.


Comment on Re: problems redirecting STDOUT and STDERR to a $variable
Download Code
Re^2: problems redirecting STDOUT and STDERR to a $variable
by ikegami (Pope) on Feb 15, 2008 at 18:03 UTC
    I prefer
    use IO::Handle qw( ); STDOUT->autoflush(1); STDERR->autoflush(1);

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (7)
As of 2014-04-18 01:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (460 votes), past polls