http://www.perlmonks.org?node_id=599290


in reply to Dropping the ampersand

sort treats the first parameter specially if it looks like a function name. It uses the function by the specified name as the compare function during sorting. You can use a unary-+ to disambiguate.

@livesys = sort +Con::liveones;
is the same
@livesys = sort { $a cmp $b } Con::liveones;
with no lost efficiency.

It's no better and no worse than
@livesys = sort &Con::liveones;

Both are better than
@livesys = sort @{[Con::liveones]};

Replies are listed 'Best First'.
Re^2: Dropping the ampersand
by diotalevi (Canon) on Feb 10, 2007 at 00:45 UTC

    You don't lose any efficiency with sort { $a cmp $b }. It's special cased along with several other similar kinds of sorts.

    ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊