locale3p
Perl pragma to use or avoid posix locales for built-in operations
Usage
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 usefuluse 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 operationsuse locale ':!numeric'; # Use the locale for everything but# numeric-related operationsuse locale ':not_numeric'; # Sameno locale; # Turn off locale handling for the remainder of# the scope.
Overview
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.
Releases
32 releases since OpenBSD 5.0; the text changed 20 times.