perl中的语言环境设置是全局的吗?

时间:2010-07-09 16:02:08

标签: perl format locale pragma

我正在调试一个看起来像这样(简化)的perl脚本:

#!/usr/bin/perl    
use strict;
use warnings;

use Evil::Module;

printf "%.3f\n", 0.1;

此脚本会输出0,100(注意,而不是.)。如果我注释掉use Evil::Module语句,则输出将为0.100

我认为这与模块中的区域设置有关。但是locale是一个词汇编译指示(根据联机帮助页),它并没有在脚本中使用。这里发生了什么?

1 个答案:

答案 0 :(得分:5)

use locale编译指示是词法,但如果Evil :: Module模块使用POSIX::setlocale,那么区域设置更改是全局的。

有关详细信息,请参阅perldoc perllocale