On Fri Jul 22 15:34:02 2016, gfldex wrote: > my @numbers = <4 8 15 16 23 42>; my $range = 0..2; .say for > @numbers[$range]; > # OUTPUT«16» > # expected: > # OUTPUT«4815» > This is correct, and part of the "Scalar container implies item" rule. Changing it would break things like the second evaluation here:
> my @x = 1..10; my @y := 1..3; @x[@y] (2 3 4) > @x[item @y] 4 Noting that since a range can bind to @y in a signature, then Range being a special case would make an expression like @x[$(@arr-param)] unpredictable in its semantics. > # also binding to $range provides the expected result > my @numbers = <4 8 15 16 23 42>; my $range := 0..2; .say for > @numbers[$range]; > # OUTPUT«4815» > y This is also expected, since with binding there is no Scalar container to enforce treatment as an item. So, all here is working as designed.