|laziness, impatience, and hubris|
Is this a bug in Perl scope?by Zarabozo (Acolyte)
|on Jul 22, 2012 at 13:32 UTC||Need Help??|
Zarabozo has asked for the
wisdom of the Perl Monks concerning the following question:
I'm having an issue in a file that declares more than one package. It all boils down to the following example:
package one; use strict; use warnings; my $var = 1; package two; use strict; use warnings; my $var = 5; package main; use strict; use warnings; print "$var\n";Which gives the following warning an answer:
"my" variable $var masks earlier declaration in same scope at test.pl line 9. 51) Shouldn't the "package" mean a different scope and NOT produce the 'mask earlier declaration' warning?
2) Shouldn't the last line produce an error instead of printing "5" since $var was never defined on 'main' and all packages use strict?
I tried this on Perl 5.010 and Perl 5.014 with the same result.
This really scares me. :-|