Come for the quick hacks, stay for the epiphanies. | |
PerlMonks |
Is this a bug in Perl scope?by Zarabozo (Acolyte) |
on Jul 22, 2012 at 13:32 UTC ( [id://983064]=perlquestion: print w/replies, xml ) | Need Help?? |
Zarabozo has asked for the wisdom of the Perl Monks concerning the following question:
Hello, 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. :-| Francisco
Back to
Seekers of Perl Wisdom
|
|