Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

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.


The Gantry Web Framework Book is now available.

Replies are listed 'Best First'.
Re^2: problems redirecting STDOUT and STDERR to a $variable
by ikegami (Patriarch) on Feb 15, 2008 at 18:03 UTC
    I prefer
    use IO::Handle qw( ); STDOUT->autoflush(1); STDERR->autoflush(1);

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (3)
As of 2022-11-28 18:54 GMT
Find Nodes?
    Voting Booth?