我正在调试一个看起来像这样(简化)的 perl 脚本:
#!/usr/bin/perl
use strict;
use warnings;
use Evil::Module;
printf "%.3f\n", 0.1;
此脚本输出 0,100
(注意 ,
而不是 .
)。如果我注释掉 use Evil::Module
语句,输出将为 0.100
。
我认为这与模块中的语言环境设置有关。但是locale是词法编译指示(根据联机帮助页),脚本中未使用它。这里发生了什么?
最佳答案
use locale
pragma 是词法的,但如果 Evil::Module 模块使用 POSIX::setlocale
,则区域设置更改是全局的。
参见 perldoc perllocale
获取更多信息。
关于perl - 在 perl 中语言环境设置是全局的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214418/