perl禁用"设置区域设置失败。"警告显示在屏幕上

时间:2018-03-30 07:37:21

标签: perl

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

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

设置的语言是" 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 个答案:

答案 0 :(得分:2)

您可以设置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