Perl: the Markov chain saw | |
PerlMonks |
comment on |
( [id://3333]=superdoc: 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 reply to Re^17: ref to read-only alias ... why? (notabug)
by ikegami
|
|