From perlsyn# Foreach Loops
Otherwise, the variable is
implicitly local to the loop and regains its former value upon exiting
the loop. If the variable was previously declared with "my", it uses
that variable instead of the global one, but it’s still localized to
the loop.
If you also check the references you will see that the '$i' are pointing to different locations.
use strict;
use warnings;
$,=",";
$\="\n";
my $i = 6;
sub my_print {
print $i,\$i;
}
;
for $i (qw|x y|) {
my_print();
print " (Perl Style:\$i==$i)",\$i,"\n";
}
OUTPUT
6, SCALAR(0x8fa4e38)
(Perl Style:$i==x), SCALAR(0x8f86760),
6, SCALAR(0x8fa4e38)
(Perl Style:$i==y), SCALAR(0x8fa4da8),
That's why PBP says to always use lexical loop vars in foreach!
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|