use I18N::Collate; setlocale(LC_COLLATE, 'locale-of-your-choice'); $s1 = new I18N::Collate "scalar_data_1"; $s2 = new I18N::Collate "scalar_data_2";
setlocale()
function is supported on your system.
You can compare $s1
and $s2
above with
$s1 le $s2
to 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
approach ls /usr/lib/nls/loc
or ls /usr/lib/nls
or
ls /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 like xx_XX.(ISO)?8859-N
or
xx_XX.(ISO)?8859N
, for example fr_CH.ISO8859-1
is the Swiss
(CH) variant of French (fr),
ISO Latin (8859) 1 (-1) which is the Western European character set.