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

标签 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是词法编译指示(根据联机帮助页),脚本中未使用它。这里发生了什么?

最佳答案

use locale pragma 是词法的,但如果 Evil::Module 模块使用 POSIX::setlocale,则区域设置更改是全局的。

参见 perldoc perllocale获取更多信息。

关于perl - 在 perl 中语言环境设置是全局的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214418/

相关文章:

flutter - 如何在 Dart 中将数字格式化为千位分隔符

Python3 - 在字符串格式化程序参数中使用变量

java - 货币符号国际化 Java

android - 允许用户选择应用程序语言/语言环境?

facebook - 从 Facebook Graph API 获取语言代码/区域

perl - 如何从 Perl 快速访问许多大型 CSV 文件中的数据?

regex - 有没有办法计算 Perl 正则表达式匹配的次数?

multithreading - 将线程迁移到分支

perl:使用字符串作为代码片段

python - 在 Sentry 中对 '.format()' 样式的日志消息进行分组