If you need to do this in a module or a larger program, you can localize the filehandle glob, or use the two-argument select. This is handy to avoid spooky action at a distance:
open(OUT, ">firstout.txt") or die "1: $!\n";
print OUT "First\n";
{
local *OUT;
open(OUT, ">secondout.txt") or die "2: $!\n";
print OUT "Second\n";
}
print OUT "Third\n";
Update: If there's an explicit close, it's also worth checking for an error. Someone on p5p had intermittent test failures (creating temporary files) on a nearly full disk. I rarely check, but know I should. |