I18N::Collate
See the current Perl documentation for I18N::Collate.
Here is our local, out-dated (pre-5.6) version:
I18N::Collate - compare 8-bit scalar data according to the current locale
***
WARNING: starting from the Perl version 5.003_06 the I18N::Collate interface for comparing 8-bit scalar data according to the current loca
use I18N::Collate; setlocale(LC_COLLATE, 'locale-of-your-choice'); $s1 = new I18N::Collate "scalar_data_1"; $s2 = new I18N::Collate "scalar_data_2";
This module provides you with objects that will collate according to your national character set, provided that the POSIX
setlocale()
function is supported on your system.You can compare
$s1
and$s2
above with
$s1 le $s2to extract the data itself, you'll need a dereference:
$$s1
This module uses POSIX::setlocale(). The basic collation conversion is done by
strxfrm()
which terminates at NUL characters being a decent C routine.collate_xfrm()
handles embedded NUL characters gracefully.The available locales depend on your operating system; try whether
locale -a
shows them or man pages for ``locale'' or ``nlsinfo'' or the direct approachls /usr/lib/nls/loc
orls /usr/lib/nls
orls /usr/lib/locale
. Not all the locales that your vendor supports are necessarily installed: please consult your operating system's documentation and possibly your local system administration. The locale names are probably something likexx_XX.(ISO)?8859-N
orxx_XX.(ISO)?8859N
, for examplefr_CH.ISO8859-1
is the Swiss (CH) variant of French (fr), ISO Latin (8859) 1 (-1) which is the Western European character set.