Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

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.


Comment on Re: Natural sorting
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 }, } );
      says...
      78848 items in array... s/iter natural_sort Sort::Key natural_sort 3.51 -- -31% Sort::Key 2.41 46% --

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (9)
As of 2014-12-26 00:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (163 votes), past polls