代码之家  ›  专栏  ›  技术社区  ›  Eugene Yarmash

区域设置在Perl中是全局的吗?

  •  3
  • Eugene Yarmash  · 技术社区  · 14 年前

    我正在调试一个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 回复  |  直到 14 年前
        1
  •  5
  •   mob    14 年前

    这个 use locale pragma是词汇,但是如果evil::module模块使用 POSIX::setlocale ,则区域设置更改是全局的。

    perldoc perllocale 更多信息。