in reply to Opening and Closing STDOUT

I haven't hit on the correct answer (yet), but in the meantime, you might consider using STDERR for the part that follows the use of that (ugly) module. Since you're not redirecting STDERR, it will continue to show on the console; maybe you won't really need STDOUT at that point.

update:Aha! chromatic nailed it (I'm still working on my typeglob skills...) -- here's a working example:

print "We are about to go into that ugly module...\n"; { local *STDOUT; open( STDOUT, ">/tmp/junk.stdout" ); print "This goes to junk.stdout\n"; } print "Okay, that mess is over with.\n";
You'll see that only the first and third prints go to the console, and you can check the contents of /tmp/junk.stdout to confirm where the middle print went.