NAME

locale - Perl pragma to use or avoid POSIX locales for built-in operations

SYNOPSIS

my @x1 = sort @y;      # Native-platform/Unicode code point sort order
{
    use locale;
    my @x2 = sort @y;  # Locale-defined sort order
}
my @x3 = sort @y;      # Native-platform/Unicode code point sort order
                       # again

# Parameters to the pragma are to work around deficiencies in locale
# handling that have since been fixed, and hence these are likely no
# longer useful
use locale qw(:ctype :collate);    # Only use the locale for character
                                   # classification (\w, \d, etc.), and
                                   # for string comparison operations
                                   # like '$a le $b' and sorting.
use locale ':not_characters';      # Use the locale for everything but
                                   # character classification and string
                                   # comparison operations

use locale ':!numeric';            # Use the locale for everything but
                                   # numeric-related operations
use locale ':not_numeric';         # Same

no locale;             # Turn off locale handling for the remainder of
                       # the scope.

DESCRIPTION

This pragma tells the compiler to enable (or disable) the use of POSIX locales for built-in operations (for example, LC_CTYPE for regular expressions, LC_COLLATE for string comparison, and LC_NUMERIC for number formatting). Each use locale or no locale affects statements to the end of the enclosing BLOCK.

The pragma is documented as part of perllocale.