|
|
| Do you know where your variables are? | |
| PerlMonks |
Re: perl v5.16 bug?by tobyink (Prior) |
| on Mar 15, 2013 at 23:38 UTC ( #1023795=note: print w/ replies, xml ) | Need Help?? |
|
The problem is that the entire while condition is evaluated every time around the loop, meaning that [@a] is evaluated every time around the loop, yielding a reference to a different anonymous array every time around the loop. Because you're polling a fresh new array every time around the loop, each's "pointer" for the array is at the beginning every time. This is the safe way to do it:
... because you're using a reference to the same array every time around the loop.
package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
In Section
Seekers of Perl Wisdom
|
|
||||||||||||||||||||