David Storrs writes: > On Sat, Jul 03, 2004 at 01:02:34AM -0600, Luke Palmer wrote: > > > But indeed there are cases where it is a problem: > > > > my $x = 2; > > sub mklist () { > > return map { 2 * $_ } 0..10; > > } > > > > my @list = mklist; > > say @list[0..4]; # 0 2 4 6 8 > > $x = 1; > > say @list; # 0 2 4 6 8 5 6 7 8 9 10 > > > > Which is assuredly different from what would happen if it were evaluated > > non-lazily. > > Did you mean the body of mklist to be: > > return map { 2 * $x } 0..10; > # Note:--------------------^^
Haha, whoops. No, I meant it to be: return map { $x * $_ } 0..10; Changes things a bit, then :-) Luke