首页 文章

perl禁用“设置区域设置失败 . ”警告显示在屏幕上

提问于
浏览
1

我想禁用区域设置失败警告以显示在命令行上 .

在system(aix)中,可用的语言环境是C,POSIX,en_US.8859-15,en_US.ISO8859-1,en_US

设置的语言是“EN_US”(导出$ LANG = EN_US),这在上面的列表中不可用 . 因为执行以下命令会抛出警告 . 如果语言是从上面的列表中设置的(导出$ LANG = en_US),它运行正常 .


#  perl -X -e "print 'hello'"
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        LC__FASTMSG = "true",
        LANG = "EN_US"
     are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C")

你好

我保留在perl脚本中的相同命令,它正在抛出相同的警告 . 我也使用了 $SIG(__WARN__) ,但上面的警告并没有在这里找到 . 但与未申报变量等有关的另一个警告正在赶上 . 一种解决方案是安装我所知道的不可用的语言环境,但是由于我的代码具有选择其他语言消息的逻辑,因此寻找禁用它 .

那么在屏幕上禁用这些警告的方法是什么?

1 回答

  • 1

    您可以将 PERL_BADLANG 环境变量设置为忽略这些警告,如perldoc perllocale #Temporarily Fixing Locale Problems中所述

    LANG="FOO" perl -X -e 'print "hello\n";'
    perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "FOO"
        are supported and installed on your system.
    perl: warning: Falling back to the standard locale ("C").
    hello
    

    vs

    PERL_BADLANG=0 LANG="FOO" perl -X -e 'print "hello\n";'
    hello
    

相关问题