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:--------------------^^ Or am I just confused? --Dks