".." is the range operator. It can create a list of ascending numbers. You need to know the start and end of the range. In general, there's nothing you can count to determine the start and end of the range when doing a list slice.
And here's the doozy. This probably isn't documented, but in a list slice, the index expression is evaluated before the list expression. This means you need to know how many elements split will return before split is even called. That means you need to find an alternate code arrangement.
Some solutions:
(undef, undef, undef, my @set) = split /\s+/, $x; my @set = split /\s+/, $x; splice(@set, 0, 3); my @set = sub { @_[3..$#_] }->( split /\s+/, $x );
The last one hasn't been mentioned yet.
Update: Changed HTML coding so that users of "Enforce proper nesting" could see the DELeleted text.
In reply to Re: Getting range from N..end with list slice
by ikegami
in thread Getting range from N..end with list slice
by Marshall
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |