Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Natural sorting

by pKai (Priest)
on Dec 15, 2007 at 09:10 UTC ( #657175=note: print w/replies, xml ) Need Help??

in reply to Natural sorting

Did you concider using one of salva's Sort::Key::* modules, maybe Sort::Key::Natural? I'd expect that to show superior performance.

Replies are listed 'Best First'.
Re^2: Natural sorting
by thundergnat (Deacon) on Dec 15, 2007 at 16:45 UTC

    Good point. Being an XS module I would expect it to have good performance, though for some reason it won't build on my system so I haven't been able to test it.

      I would appreciate if you could send my a bug report stating the cause of the build error (the output from make will do), your perl version, OS and processor (or perl -V output).

      oh, and BTW...

      use Sort::Key qw(keysort); sub mkkey { my $key = deaccent $_; $key =~ s/(?<=\d)\Q$separator\E(?>=\d)//g; $key =~ s{0*(\d+)}{ my $len = length $1; "\x00" . ('9' x ($len / 9)) . ($len % 9) . $1 }eg; $key; } ... cmpthese( -30, { #'alphanum' => sub { @temp = sort { alphanum( $a, $b ) +} @array; }, #'Sort::Naturally' => sub { @temp = nsort(@array) }, 'natural_sort' => sub { @temp = natural_sort(@array) }, 'Sort::Key' => sub { @temp = keysort \&mkkey, @array }, } );
      78848 items in array... s/iter natural_sort Sort::Key natural_sort 3.51 -- -31% Sort::Key 2.41 46% --

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://657175]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2021-02-25 00:16 GMT
Find Nodes?
    Voting Booth?

    No recent polls found