Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Redirecting STDOUT

by SarahM (Monk)
on Jun 14, 2002 at 13:54 UTC ( [id://174513]=note: print w/replies, xml ) Need Help??


in reply to Redirecting STDOUT

Here is a trick I've used before. I know it works on windows...but I haven't tried it on unix. You'll need to download IO::Scalar, it comes with IO-stringy.
use IO::Scalar; my $output; tie (*STDOUT, 'IO::Scalar', \$output); # Use this to capture STDOUT print "testout\n"; untie *STDOUT; # Use this to return STDOUT to normal print "my output='$output'";
I hope this works for you.

Replies are listed 'Best First'.
Re: Re: Redirecting STDOUT
by mt2k (Hermit) on Jun 15, 2002 at 04:20 UTC
    I never thought of tieing the variable... this is how I use IO::Scalar when I wish to redirect output.
    It's actually more useful for when you just need to have output to a variable rather than to some file handle:

    use IO::Scalar; my ( $STD1 $STD2 ); $STD1 = new IO::Scalar \$STD2; select $STD1; print <<DONE; blah blah blah All this is being appended to the $STD2 variable So some more text here and we are... DONE open FILE, ">test.txt"; print FILE $STD2; close FILE;
    Yes, odd example since you could have just used:

    open FILE, ">test.txt"; select FILE; print <<DONE; all that stuff again. I am DONE

    But you get the point...

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (5)
As of 2024-04-23 21:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found