Rod Adams writes:
> Are the following all legal and equivalent?
> 
>    for 1..10 -> $a, $b { say $a, $b };
> 
>    for 1..10 { say $^a, $^b };
> 
>    sub foo ($a, $b) { say $a, $b };
>    for 1..10 &foo;

Almost.  The last one should be:

    for 1..10, &foo;
 
> What happens with:
> 
>    for 1..10 -> [EMAIL PROTECTED] { say @a };

Good question.  That's a function of how C<for> interprets the arity.  The
formal arity of a sub with *@ is Inf, so I suppose say would get 1..10
and the loop would run once.

That's probably the best way for C<for> to behave, because that's what
I'd expect in this case.

Luke

Reply via email to