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

- NAME
- SYNOPSIS
- DESCRIPTION

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

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