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
