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


in reply to sorting a list of hashes on an element/attribute of the hash

For small data sets, the answers given are readable and to the point. However, Sort::Key is just as readable and the fastest Perl sorting solution --- ideal if you have a large data set:
use Sort::Key ; # sorting by a numeric integer key: @by_order = ikeysort { $_->{order} } @$data;


Carter's compass: I know I'm on the right track when by deleting something, I'm adding functionality

Replies are listed 'Best First'.
Re^2: sorting a list of hashes on an element/attribute of the hash
by salva (Canon) on Jun 04, 2007 at 17:43 UTC
    Well, I am currently working on Sort::Key::Radix that uses a Radix Sort as the sorting algorithm and has identical usage to Sort::Key.

    When sorting large data sets and for some kinds of data, as for instance small numbers (as shown on the OP), it can be much faster than Sort::Key.

    use Sort::Key::Radix qw(ukeysort); my @by_order = ukeysort { $_->{order} } @data;

    ...though I am still getting some FAIL reports from the CPAN testers.