内容

名称

locale - Perl pragma 用于使用或避免 POSIX 本地化以进行内置操作

警告

请勿在有多个活动 线程 的脚本中使用此 pragma。本地化不属于单个线程。另一个线程可能随时更改本地化,这至少会导致给定线程在它不期望的本地化中运行。在某些平台上,还可能发生段错误。本地化更改不必是显式的;某些操作会导致 perl 本身更改本地化。只需执行 "use locale" 就会使你容易受到攻击。

概要

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

说明

此 pragma 告诉编译器启用(或禁用)对内置操作使用 POSIX 本地化(例如,正则表达式的 LC_CTYPE、字符串比较的 LC_COLLATE 和数字格式化的 LC_NUMERIC)。每个“use locale”或“no locale”都会影响到封闭 BLOCK 结尾处的语句。

请参阅 perllocale 了解有关 Perl 如何支持本地化的更详细信息。

在没有本地化的系统上,此 pragma 将导致你的操作表现得如同在“C”本地化中;更改本地化的尝试将失败。