in reply to [SOLVED]: Need help with range expression ('0 .. -0.5' === '0 .. 0.5')

push @a, reverse @a[0..$#a-@a%2];

Replies are listed 'Best First'.
Re^2: Need help with range expression ('0 .. -0.5' === '0 .. 0.5')
by BillKSmith (Prior) on Feb 24, 2019 at 04:41 UTC
    I am surprised that this works for the special case qw(A). Documentation for the range operator specifies that it returns an empty list when the first element is greater than the second (in this case 0..-1). I cannot find any documentation of what should happen when the list of elements in an array slice is an empty list (in this case @a() ). It seems to return an empty string, which is exactly what is needed!

    UPdate: Corrected terminology - Changed 'string' to 'list'.


      No, why (from Range Operators):

      In list context, it returns a list 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 list.

      I'm embarrassed to see now, I posted almost the same answer as poj 10 minutes after him. I guess I just glanced across available answers without actually reading, thought his was long enough so mine is different, and clicked "create". Sorry about that.

        I had already found the pertinent documentation for the range operator (thanks for posting the link). I still cannot find documentation for the special case of array slice.