我正在调试一个Perl脚本,它看起来如下(简化):
#!/usr/bin/perl use strict; use warnings; use Evil::Module; printf "%.3f\n", 0.1;
此脚本输出 0,100 (音符 , 而不是 . )如果我评论 use Evil::Module 语句,输出将 0.100 .
0,100
,
.
use Evil::Module
0.100
我相信这与模块中的区域设置有关。但是 locale 是一个词汇语用(根据手册页),它不在脚本中使用。这里发生了什么?
这个 use locale pragma是词汇,但是如果evil::module模块使用 POSIX::setlocale ,则区域设置更改是全局的。
use locale
POSIX::setlocale
见 perldoc perllocale 更多信息。
perldoc perllocale