Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: String Buffer

by FunkyMonk (Canon)
on Aug 24, 2008 at 15:10 UTC ( #706565=note: print w/ replies, xml ) Need Help??


in reply to Re: String Buffer
in thread String Buffer

Or, without using tie:
open my $oldout, ">&STDOUT" or die "Can't dup STDOUT: $!"; my $stdout; close STDOUT; open STDOUT, ">", \$stdout or die $!; # This is where the magic happen +s print "foo\n"; close STDOUT; open STDOUT, ">&", $oldout or die $!; print "Done fooling around\n"; print $stdout; # foo

This is mostly copy & pasted from open, so you might want to look there for more.


Unless I state otherwise, all my code runs with strict and warnings


Comment on Re^2: String Buffer
Download Code
Re^3: String Buffer
by ambrus (Abbot) on Aug 25, 2008 at 13:07 UTC

    In fact, that uses a perlio layer silently.

    I've been wishing a perlio layer that allows you to simply open a stream that behaives like any tied handle eg.

    use StringBuffer; use PerlIO::Tied; # Note: never close one of the three standard handles. It's almost alw +ays a bad idea. open OLDSTDOUT, ">&=STDOUT"; open STDOUT, ">:tied(StringBuffer)"; # I presume extra arguments to ti +e get passed as extra argument to open print STDOUT "this magically gets put to \$stdout\n"; open STDOUT, ">&=OLDSTDOUT"; print STDOUT "this gets put to the original standard output again\n";

    This gets even more useful if you want to use a tied io handle from the command line eg. perl -MPerlIO::Tied -we 'some code' ':tied(SomeModule, arguments)'.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (10)
As of 2014-11-21 20:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (116 votes), past polls