in reply to Advanced Sorting - GRT - Guttman Rosler Transform

Your example code:

my @sorted=map { substr($_,4) } sort map { pack("LA*",tr/eE/eE/,$_) } @words;
is not quite correct; the "LA*" should be "NA*". The "L" signifies a native 32-bit unsigned integer yet to guarantee sorting correctness on all architectures you must specify "N", network (big-endian) order.

Replies are listed 'Best First'.
Re: Re: Advanced Sorting - GRT - Guttman Rosler Transform
by demerphq (Chancellor) on Aug 25, 2003 at 14:54 UTC

    Ah, good catch. On my architecture it would sort correctly, but not on all. This is one of the reasons this technique can be a bit tricky, but getting it right can have a nice pay off. Cheers.


    <Elian> And I do take a kind of perverse pleasure in having an OO assembly language...