+++ /dev/null
-README for Sort::Naturally
- Time-stamp: "2001-05-25 21:17:33 MDT"
-
- Sort::Naturally
-
-[extracted from the Pod...]
-
-NAME
- Sort::Naturally -- sort lexically, but sort numeral parts
- numerically
-
-SYNOPSIS
- @them = nsort(qw(
- foo12a foo12z foo13a foo 14 9x foo12 fooa foolio Foolio Foo12a
- ));
- print join(' ', @them), "\n";
-
- Prints:
-
- 9x 14 foo fooa foolio Foolio foo12 foo12a Foo12a foo12z foo13a
-
- (Or "foo12a" + "Foo12a" and "foolio" + "Foolio" and might be
- switched, depending on your locale.)
-
-DESCRIPTION
- This module exports two functions, nsort and ncmp; they are
- used in implementing my idea of a "natural sorting"
- algorithm. Under natural sorting, numeric substrings are
- compared numerically, and other word-characters are compared
- lexically.
-
- This is the way I define natural sorting:
-
- o Non-numeric word-character substrings are sorted
- lexically, case-insensitively: "Foo" comes between
- "fish" and "fowl".
-
- o Numeric substrings are sorted numerically: "100" comes
- after "20", not before.
-
- o \W substrings (neither words-characters nor digits) are
- ignored.
-
- o Our use of \w, \d, \D, and \W is locale-sensitive:
- Sort::Naturally uses a use locale statement.
-
- o When comparing two strings, where a numeric substring
- in one place is not up against a numeric substring in
- another, the non-numeric always comes first. This is
- fudged by reading pretending that the lack of a number
- substring has the value -1, like so:
-
- foo => "foo", -1
- foobar => "foo", -1, "bar"
- foo13 => "foo", 13,
- foo13xyz => "foo", 13, "xyz"
-
- That's so that "foo" will come before "foo13", which
- will come before "foobar".
-
- o The start of a string is exceptional: leading non-\W
- (non-word, non-digit) components are are ignored, and
- numbers come before letters.
-
- o I define "numeric substring" just as sequences matching
- m/\d+/ -- scientific notation, commas, decimals, etc.,
- are not seen. If your data has thousands separators in
- numbers ("20,000 Leagues Under The Sea" or "20.000
- lieues sous les mers"), consider stripping them before
- feeding them to nsort or ncmp.
-
-[end Pod extract]
-
-
-INSTALLATION
-
-You install Sort::Naturally, as you would install any perl module
-library, by running these commands:
-
- perl Makefile.PL
- make
- make test
- make install
-
-If you want to install a private copy of Sort::Naturally in your home
-directory, then you should try to produce the initial Makefile with
-something like this command:
-
- perl Makefile.PL LIB=~/perl
-
-See perldoc perlmodinstall for more information on installing modules.
-
-
-DOCUMENTATION
-
-POD-format documentation is included in Naturally.pm. POD is readable
-with the 'perldoc' utility. See ChangeLog for recent changes.
-
-
-SUPPORT
-
-Questions, bug reports, useful code bits, and suggestions for
-Sort::Naturally should just be sent to me at sburke@cpan.org
-
-
-AVAILABILITY
-
-The latest version of Sort::Naturally is available from the
-Comprehensive Perl Archive Network (CPAN). Visit
-<http://www.perl.com/CPAN/> to find a CPAN site near you.
-
-
-COPYRIGHT
-
-Copyright 2001, Sean M. Burke <sburke@cpan.org>, all rights
-reserved.
-
-The programs and documentation in this dist are distributed in
-the hope that they will be useful, but without any warranty; without
-even the implied warranty of merchantability or fitness for a
-particular purpose.
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.