in reply to Implicit closing of files

Yes, unless *HANDLE or *HANDLE{IO} is still referenced by something.
{ my $fh; { local *HANDLE; open(HANDLE, '>', 'temp') or die; print HANDLE "foo\n"; $fh = *HANDLE{IO}; } print $fh "bar\n" or die; # Works. } # Now it's closed.