To back up what I said,
>perl -MO=Concise,-exec -e"(LIST_EXPR)[INDEX_EXPR]" 1 <0> enter 2 <;> nextstate(main 1 -e:1) v:{ 3 <0> pushmark s 4 <$> const[PV "INDEX_EXPR"] s/BARE 5 <0> pushmark s 6 <$> const[PV "LIST_EXPR"] s/BARE 7 <2> lslice vK/2 8 <@> leave[1 ref] vKP/REFC -e syntax OK
Or a more à propos example,
>perl -MO=Concise,-exec -e"(split)[$x..$y]" 1 <0> enter 2 <;> nextstate(main 1 -e:1) v:{ 3 <0> pushmark s 4 <|> range(other->5)[t5] lK/1 <-------- 5 <#> gvsv[*y] s 6 <1> flop lK goto 7 e <#> gvsv[*x] s f <1> flip[t6] lK 7 <0> pushmark s 8 </> pushre(/" "/) s*/64 9 <#> gvsv[*_] s a <$> const[IV 0] s b <@> split[t2] lK <-------- c <2> lslice vK/2 d <@> leave[1 ref] vKP/REFC -e syntax OK
Now, I suspect the relative order in which the expressions are evaluated is arbitrary. It could be changed if it would be deemed useful to evaluate them in the other order.
In reply to Re^3: Getting range from N..end with list slice
by ikegami
in thread Getting range from N..end with list slice
by Marshall
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |