locale(3p) | Perl Programmers Reference Guide | locale(3p)

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

2025-01-28 | perl v5.40.1