I18N::Collate - compare 8-bit scalar data according to the current locale

- NAME
- SYNOPSIS
- DESCRIPTION

# NAME

I18N::Collate - compare 8-bit scalar data according to the current locale

# SYNOPSIS

        use I18N::Collate;
        setlocale(LC_COLLATE, 'locale-of-your-choice');
        $s1 = new I18N::Collate "scalar_data_1";
        $s2 = new I18N::Collate "scalar_data_2";

# DESCRIPTION

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 $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.