NAME

WordLists::Sort::Typical

SYNOPSIS

'A14' cmp 'A2'; # sadly returns -1, so instead do this:
use WordLists::Sort::Typical qw(cmp_alnum);
cmp_alnum('A14', 'A2'); # returns 1

DESCRIPTION

This provides functions for sorting text.

cmp_alnum

Compares alphanumeric values sensibly, e.g. "Unit 10" comes after "Unit 9", not before "Unit 2". Case-insensitive.

cmp_alnum_only

Compares alphanumeric values sensibly as cmp_alnum, but ignores all values except alphanumeric characters, so "re-factor" sorts with "refactor", not between "re" and "react". Case-insensitive.

cmp_accnum

Compares alphanumeric values sensibly as cmp_alnum, and considers accented characters to be equivalent to unaccented characters, so "café" sorts with "cafe", not after "caftan".

cmp_accnum_only

Compares alphanumeric values sensibly and accent-insensitively as cmp_accnum, and ignores non-alphanumeric content like cmp_alnum_only

cmp_ver

Compares version numbers sensibly, even if they are of the form "v1.0028_01a".

cmp_dict

This uses a complex_sort, the first stage being cmp_accnum_only. Strings which are still equal are progressively sorted with tie-breakers so that order is reliable. Strings beginning "the " are sorted identically, except at the end, when strings without "the " have preference.

  • Case - uppercase comes after lowercase.

  • Accents - uppercase comes after lowercase.

  • Non-alphanumeric characters - these are sorted, ignoring other intervening characters.

  • Definite article - if the strings are otherwise identical, a string beginning "the " comes after a string not beginning "the "

BUGS

Please use the Github issues tracker.

LICENSE

Copyright 2011-2012 © Cambridge University Press. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.