Perl Programming Documentation
Download Perl
Explore

Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

Tools

- Preferences

# locale

Perl 5 version 18.2 documentation
Go to top
Show page index • Show recent pages
Recently read

# locale

- NAME
- SYNOPSIS
- DESCRIPTION
- NOTE

# NAME

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

# SYNOPSIS

        @x = sort @y;	# Unicode sorting order    {        use locale;        @x = sort @y;   # Locale-defined sorting order    }    @x = sort @y;	# Unicode sorting order again

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

Starting in Perl 5.16, a hybrid mode for this pragma is available,

        use locale ':not_characters';

which enables only the portions of locales that don't affect the character set (that is, all except LC_COLLATE and LC_CTYPE). This is useful when mixing Unicode and locales, including UTF-8 locales.

        use locale ':not_characters';    use open ":locale";           # Convert I/O to/from Unicode    use POSIX qw(locale_h);       # Import the LC_ALL constant    setlocale(LC_ALL, "");        # Required for the next statement                                  # to take effect    printf "%.2f\n", 12345.67'    # Locale-defined formatting        @x = sort @y;                 # Unicode-defined sorting order.                                                                    # (Note that you will get better                                                                    # results using Unicode::Collate.)

See perllocale for more detailed information on how Perl supports locales.

# NOTE

If your system does not support locales, then loading this module will cause the program to die with a message:

        "Your vendor does not support locales, you cannot use the locale        module."

Page index

- NAME
- SYNOPSIS
- DESCRIPTION
- NOTE