2
當我把我的locale
到it_IT.UTF-8
(出口LC_ALL = it_IT.UTF-8),並運行此腳本使用的語言環境 - 問題
#!/usr/bin/env perl
use warnings;
use 5.012;
use POSIX qw(strftime);
say strftime "%A %B %e %H:%M:%S %Y", localtime;
我得到這樣的輸出:
martedì marzo 15 08:50:07 2011
但閱讀本(從The-use-locale-pragma):
By default, Perl ignores the current locale. The use locale pragma tells Perl to use the current locale for some operations: ... The POSIX date formatting function (strftime()) uses LC_TIME .
爲什麼我的語言環境設置對strftime輸出有影響,而不使用locale
編譯指示?
看來'POSIX'和語言環境只是Perl的一個黑暗的角落。另見http://stackoverflow.com/questions/3214418/is-locale-setting-global-in-perl – 2011-03-15 09:22:59