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」都會影響到封閉區塊結尾的陳述式。
請參閱 perllocale,以取得 Perl 如何支援地區設定的更詳細資訊。
在沒有地區設定的系統上,此 pragma 會讓你的操作表現得好像在「C」地區設定中;變更地區設定的嘗試將會失敗。