Today I was surprised and pleased to find that I could apparently subscript an array with a list of lists of indices, and get a list of slices back:
> my @array = 9 ... 0 [9 8 7 6 5 4 3 2 1 0] > @array[map { $_, $_ + 1 }, ^9] ((9 8) (8 7) (7 6) (6 5) (5 4) (4 3) (3 2) (2 1) (1 0)) Neat! But when I tried to clean up my code a bit, it broke. > my @index = map { $_, $_ + 1 }, ^9 [(0 1) (1 2) (2 3) (3 4) (4 5) (5 6) (6 7) (7 8) (8 9)] > @array[@index] (7 7 7 7 7 7 7 7 7) Weird. But map returns a Seq, right? So maybe... > @array[@index.Seq] (7 7 7 7 7 7 7 7 7) Hmm. How about: > @array[@index.List] ((9 8) (8 7) (7 6) (6 5) (5 4) (4 3) (3 2) (2 1) (1 0)) That works again. But why? Is this the intended behavior? If so, is it documented somwhere?