我正在调试一个看起来像这样(简化)的perl脚本:
#!/usr/bin/perl
use strict;
use warnings;
use Evil::Module;
printf "%.3f\n", 0.1;
此脚本会输出0,100
(注意,
而不是.
)。如果我注释掉use Evil::Module
语句,则输出将为0.100
。
我认为这与模块中的区域设置有关。但是locale是一个词汇编译指示(根据联机帮助页),它并没有在脚本中使用。这里发生了什么?
答案 0 :(得分:5)
use locale
编译指示是词法,但如果Evil :: Module模块使用POSIX::setlocale
,那么区域设置更改是全局的。
有关详细信息,请参阅perldoc perllocale
。