in reply to Bad news for IO::Handle magic
This probably does deserve a better warning but you can find this behaviour documented in the Technical Note on the Syntax of Variable Names section in perlvar, where it is noted that ...
Perl identifiers that begin with digits, control characters, or punctuation characters are exempt from the effects of the "package" declaration and are always forced to be in package "main"; they are also exempt from "strict 'vars'" errors. A few other names are also exempt in these ways:
ENV STDIN INC STDOUT ARGV STDERR ARGVOUT _ SIG
HTH
_________
broquaint
In Section
Meditations