我想禁用区域设置失败警告以显示在命令行上。
在系统(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__)
,但上面的警告并没有在这里找到。但与未申报变量等有关的另一个警告正在赶上。
一种解决方案是安装我不知道的不可用的区域设置,但是因为我的代码具有选择其他语言消息的逻辑,所以需要禁用它。
那么在屏幕上禁用这些警告的方法是什么?
答案 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