禁用错误qw外括号的Perl警告

时间:2013-09-11 13:35:41

标签: perl

自从最近升级Debian以来,我已经让Perl抱怨qw运营商没有额外的括号。

作为系统管理员,这是不可接受的。它打破了mod_perl应用程序的左,右和中心。

如何在禁用此警告的情况下运行Perl?我可以用Perl解释器运行一个标志吗?请注意,编辑源不是一个选项。

2 个答案:

答案 0 :(得分:8)

这在Perl 5.14中有所改变 - 请参阅perldelta

  

使用qw(...)作为括号

     

历史上,解析器自欺欺人地认为qw(...)   文字总是用括号括起来,结果就是你   有时可能会省略它们周围的括号:

for $x qw(a b c) { ... }
     

解析器不再以这种方式对自己说谎。包装列表文字   在这样的括号中:

for $x (qw(a b c)) { ... }
     

这已被弃用,因为$ i(1,2,3)的括号中{   ...}不是表达式语法的一部分。他们是其中的一部分   语句语法,for语句需要文字括号。   qw表达式获得的合成括号仅为   意图被视为表达式语法的一部分。

您似乎可以使用no warnings 'qw'关闭警告,但是修复代码会好得多。

答案 1 :(得分:5)

作为系统管理员,我发现不良代码是不可接受的。

当然,最好的答案是修复有问题的perl脚本。

如果您的企业不允许您修复有问题的perl脚本,那么请不要升级Debian。

你有任何风险。