Yes. Consider:
use warnings; use strict; my $foo = 1; printFoo (); my $foo = 2; printFoo (); sub printFoo { print "\$foo = $foo\n"; }
Prints:
"my" variable $foo masks earlier declaration in same scope at noname.p +l line 8. Use of uninitialized value in concatenation (.) or string at noname.pl + line 14. $foo = $foo = 2
Why? Because printFoo sees the second $foo during the compile phase and uses it for each call. However, the second $foo is uninitialized until the assignment is executed in the execute phase, just after the first call to printFoo. Therefore the first call to printFoo uses the uninitialized contents of the second $foo. If that seems confusing, try tracking down the problem in a 1000 line script!
Silly question - you do always use strictures (use strict; use warnings;) don't you?
In reply to Re: Multiple 'my's in one block of mod_perl code?
by GrandFather
in thread Multiple 'my's in one block of mod_perl code?
by RedThree
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |