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


in reply to Perl parser gets confused with call to "sort" w/o parens

This is documented in sort:
Warning: syntactical care is required...

print sort uniq( qw( q w e r t y ));

Is interpreted as

print sort uniq qw( q w e r t y );

i.e. it uses uniq as the sorting function.

Update:

In Perl 5.18.2., I'm not getting the numeric behaviour, it just fails with

Sort subroutine didn't return single value at -e line 1.

In blead perl, though, I'm getting the same warning as you.

Update 2: The numeric context is forced even when I use uniqstr instead of uniq.

That's probably because Perl first calls

uniq 'q', 'w';
which returns 'q', 'w', and sort tries to use this value as -1, 0, or 1, etc. This enforces the scalar numeric context probably.

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,