in reply to Reasoning behind -1 not working in slices?

Quoting from perlop:
Binary ".." is the range operator, which is really two different operators depending on the context. In list context, it returns an array of values counting (up by ones) from the left value to the right value. If the left value is greater than the right value then it returns the empty array.

side note: if being destructive is ok, then @foo = splice(@list,4)