in reply to Why does 'print shift sort @array' not work?

Another option is to put the results of sort into an anonymous array and then dereference:

print shift @{[sort @array]}

Replies are listed 'Best First'.
Re^2: Why does 'print shift sort @array' not work?
by ikegami (Patriarch) on Feb 26, 2009 at 19:28 UTC

    What's the value of shift @{[sort @array]} over (sort @array)[0]?

      I said "another", not "a more valuable." As for preferable, I think it depends. Consider:

      print pop @{[sort qw(a f e b)]}; print (reverse sort qw(a f e b))[0]; use List::Util qw(maxstr); print maxstr qw(a f e b);

        pop @{[ sort qw(a f e b) ]}
        (Sort, make an array and a reference to it, dereference it, get the last item.)

        would be

        ( sort qw(a f e b) )[-1]
        (Sort, get the last item.)

        min/minstr/max/maxstr is both shorter, less work, and more straightfoward, but it is not nearly as flexible.

        maxstr qw(a f e b)
        (Get max item.)

      Other than that print (sort @array)[0] would be a syntax error without a + snuck in the right place? :)

      The cake is a lie.
      The cake is a lie.
      The cake is a lie.

        We both known Perl is very finicky when parens are omitted. But
        print [sort @array]->[0]

        would still be simpler, no?

      A reply falls below the community's threshold of quality. You may see it by logging in.