develooper Front page | perl.beginners | Postings from August 2009

Re: removing a 'tee'd file handles going forward

Thread Previous | Thread Next
Tony Esposito
August 26, 2009 11:22
Re: removing a 'tee'd file handles going forward
Message ID:
Agreed.  But the program flow would be such (pseudo-code):

(1) print STDOUT 
    print STDERR
(2) now print to both in one print statement

(3) now go back to 
    print STDOUT
    print STDERR

I want to switch back-and-forth between being able to print to STDOUT, STDERR with one 'print' statement and then back ...


From: Jenda Krynicky <>
To: Beginners Perl <>
Sent: Wednesday, 26 August, 2009 10:44:15
Subject: Re: removing a 'tee'd file handles going forward

Date sent:    Wed, 26 Aug 2009 15:36:26 +0000 (GMT)
From:    Tony Esposito <>
Subject:    removing a 'tee'd file handles going forward
To:    Beginners Perl <>

> I want to output to both STDOUT and STDERR at one point in my program, then want to separate the two handles going forward in the program so that output is sent to STDOUT and STDERR separately.  Given the code snip below, would the "undef tee" do the trick?
> use IO::Tee;
> my $tee = new IO::Tee(\*STDOUT,\*STDERR);
> $tee->print("Hi\n"); 
> $tee->flush;
> # some code here ... blah, blah, blah ...
> # now want to change to set and 'untee' STDOUT and STDERR ...
> undef tee;   # is this going to do it?

Well it will, but there is no need to do that. You can print to
STDOUT and STDERR even while the tee exists.

print $tee "Foo\n";

will go to both

print STDOUT "Foo\n";

will go to STDOUT and

print STDERR "Foo\n";



print "Foo\n";

to the select()ed filehandle.


===== === =====
When it comes to wine, women and song, wizards are allowed
to get drunk and croon as much as they like.
    -- Terry Pratchett in Sourcery

To unsubscribe, e-mail:
For additional commands, e-mail:

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About