I have no explanation for the failure. I tried to replicate your behavior with 5.8.8 and 5.10.0 but my tests worked in every case I tried. My last test program was:
#use strict; use warnings; sub subfunction { foreach my $j (0..5) { my $SUB = 'testsub'.$j; *$SUB = sub { display($j); }; } } sub display { my $x = shift; print "\$x = $x\n"; } subfunction(); &testsub0(); &testsub1(); &testsub2(); &testsub3(); &testsub4(); &testsub5(); __END__ $x = 0 $x = 1 $x = 2 $x = 3 $x = 4 $x = 5
Can you post a minimal running test script that demonstrates the bug unexpected behavior?
What version of perl and what platform?
In reply to Re^3: Global vs. local?
by ig
in thread Global vs. local?
by jpavel
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |