Don't ask to ask, just ask | |
PerlMonks |
Re^17: ref to read-only alias ... why? (notabug)by ikegami (Patriarch) |
on Jan 09, 2012 at 09:59 UTC ( [id://946977]=note: print w/replies, xml ) | Need Help?? |
How can you claim that for(1..3) doesn't alias when you can clearly see ++$_; having an effect on what it returns? In both for(1..3) and for(1), $_ is aliased to each value returned by the expression in the parens.
First, your example does not demonstrate a lack of aliasing. It just shows that $_ isn't aliased to $a. That's to be expected, because 1..$a doesn't return $a anymore than 0+$a does. Second, you pulled a switcheroo. I said for(1..3) aliases (and proved that it does), but your code uses for(1..$a). for(1..$a) is implemented differently; it's a counting loop and not a foreach loop. It still aliases, though.
There was code written to specifically perform this effect. By definition, the effect must be intentional.
In Section
Seekers of Perl Wisdom
|
|