Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^3: IO::Tee and write / format

by broomduster (Priest)
on Oct 17, 2008 at 19:36 UTC ( #717848=note: print w/ replies, xml ) Need Help??


in reply to Re^2: IO::Tee and write / format
in thread IO::Tee and write / format

The whole point here is to use $tee->format_write() instead of write. Then you don't have to fool around with $^ et al. (it all happens automagically). A better way for me to have shown this might have been with more calls to $tee->format_write(), as in the following modified version of what I posted earlier.

use strict; use warnings; use IO::Tee; my %hash = map { ("key$_", "val$_") } ( 1 .. 5 ); my $key; format TEE_TOP = ==== Top of Output ==== . format TEE = @<<<<< @<<<<< $key, $hash{$key} . # with lexical file handle; can also use bareword handle open my $outfile, '>', 'junk.out' or die "error opening junk.out: ($! +)"; my $tee = IO::Tee->new( \*STDOUT, $outfile ); # see docs for IO::Tee and IO::Handle for explanation of these methods # and others available for proper format use/control $tee->format_top_name( q/main::TEE_TOP/ ); for $key ( sort keys %hash ) { $tee->format_write( q/main::TEE/ ); }

from the shell:

-> ./tst-tee-write ==== Top of Output ==== key1 val1 key2 val2 key3 val3 key4 val4 key5 val5 -> cat junk.out ==== Top of Output ==== key1 val1 key2 val2 key3 val3 key4 val4 key5 val5


Comment on Re^3: IO::Tee and write / format
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2015-07-04 02:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls