in reply to Custom sort with string of numbers
Another approach is the 'decorate-sort-undecorate pattern' or Guttman-Rosler Transform (GRT), which uses the default lexical sorting of sort for maximum efficiency (even if the comparisons involved are numeric):
>perl -wMstrict -le "my @unsorted = qw(1-1-2 6-1-2 3-1-4 3-11-4 3-2-4); my @sorted = map { s{ (\d+) }{ sprintf '%ld', $1 }xmsge; $_ } sort map { s{ (\d+) }{ sprintf '%010ld', $1 }xmsge; $_ } @unsorted ; print qq{@sorted}; " 1-1-2 3-1-4 3-2-4 3-11-4 6-1-2
Update: Also: Take a look at Sort::Maker.
|
|---|