http://qs321.pair.com?node_id=544493


in reply to Re: Sorting large sets of geometric coordinates
in thread Sorting large sets of geometric coordinates

my @sorted_data = sort { $a->[1] <=> $b->[1] || $a->[0] <=> $a->[0] } @unsorted_data;
Wouldn't the second part of that sort be a no-op?

thor

The only easy day was yesterday

Replies are listed 'Best First'.
Re^3: Sorting large sets of geometric coordinates
by ikegami (Patriarch) on Apr 20, 2006 at 02:47 UTC
    It handles ties in $row_ly. <=> returns 0 if the two things it compares are equal. For example, if the compare function were to be called to compare the following two rows,
    ((5.0 0.4) (48.0 0.5)) ((48.1 0.4) (99.0 0.5))
    The first <=> would return 0 since $a->[1] (0.4) and $b->[1] (0.4) are both equal. It would then go on to compare $a->[0] (5.0) with $b->[0] (48.1)

    Update: OOPS! Copy and paste error. The code should read:

    my @sorted_data = sort { $a->[1] <=> $b->[1] || $a->[0] <=> $b->[0] } @unsorted_data;

    Nod to BrowserUk for the head's up.