Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Abusing sort()

by phroggy (Monk)
on Jul 11, 2005 at 19:12 UTC ( [id://474055]=obfuscated: print w/replies, xml ) Need Help??

perl -e'$_=sprintf("%08b"x12,map hex,"5EE62C8938D2813268509E9B"=~/../g);print sort{(1+chop)*2-3}split"","Puht r arJtel\ncerae on,khs";'

Update to take into account both sorting algorithms:

perl -e'$_=sprintf("%08b"x12,map hex,($]<5.008?"194E8E91CC3A0097991C0350":"5EE62C8938D2813268509E9B")=~/../g);print sort{(1+chop)*2-3}split"","Puht r arJtel\ncerae on,khs";'

Replies are listed 'Best First'.
Re: Abusing sort()
by davidrw (Prior) on Jul 11, 2005 at 19:44 UTC
    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?
      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";'
Re: Abusing sort()
by ysth (Canon) on Jul 12, 2005 at 00:36 UTC
    This only works for me on perls >= 5.8.0.

      Hmm, yeah, I'm seeing the same problem on perl 5.6.1; I had only tested this on 5.8.6. Apparently sort() works differently in 5.8.

      This works on 5.6.1:

      perl -e'$_=sprintf("%08b"x12,map hex,"194E8E91CC3A0097991C0350"=~/../g);print sort{(1+chop)*2-3}split"","Puht r arJtel\ncerae on,khs";'

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: obfuscated [id://474055]
Approved by davidrw
Front-paged by grinder
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (6)
As of 2024-04-26 08:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found