in reply to Abusing sort()

I think i see the basic idea, but i get this for output:
ckPartrao tunhlJe , eehsr
Update: The above was on This is perl, v5.6.1 built for i386-linux ... I get the correct output on This is perl, v5.8.7 built for MSWin32-x86-multi-thread (activestate build 813).

Update2: I changed the sort to be: sort{$x=chop;print $x;(1+$x)*2-3} and i get:
# v5.6.1: 110110010111100100001010000101100100110010000001010010110001 +11001001000100110100011 # v5.8: 1101100101111001000010100001011001001100100000010100101100011100100100 +0100110100011001110111101
Note that the lengths are different, but they're identical up to that point. Anyone have an explaination?

Replies are listed 'Best First'.
Re^2: Abusing sort()
by jdalbec (Deacon) on Jul 12, 2005 at 01:42 UTC
    This is perl, v5.6.1 built for i386-linux ckPartrao tunhlJe , eehsr
    This is perl, v5.8.1-RC3 built for darwin-thread-multi-2level Just another Perl hacker,
    This is perl, v5.8.4 built for i386-linux-thread-multi Just another Perl hacker,
    Looks like Perl changed sort algorithms between 5.6 and 5.8. Try this on 5.6:
    perl -e'$_=sprintf("%08b"x12,map hex,"194e8e91cc3a0097991c0350"=~/../g +);print sort{(1+chop)*2-3}split"","Puht r arJtel\ncerae on,khs";'