in reply to Filehandle woes

I'm not sure if this is it (since I don't have 5.004_01 around), but this is what I think is happening.

This code works (it's bad for many reasons, but it works):

open (TEST,"test") || die $!; mysub (TEST); sub mysub { my $fh = shift; print $fh; my $txt = <$fh>; print $txt; }
as does this
package mypac; sub mysub { my $fh = shift; print $fh; my $txt = <$fh>; print $txt; } package main; open (TEST,"test") || die $!; mypac::mysub ("main::TEST");
The line mysub (TEST) is called like mysub ("TEST"). When using a filehandle, you can use a string instead of the filehandle (which is the  my $txt = <$fh>). I'm guessing that perl 5.004_01 had a shared namespace for filehandles, and later versions of perl do not.