自从最近升级Debian以来,我已经让Perl抱怨qw运算符周围没有额外的括号.
作为系统管理员,这是不可接受的.它打破了mod_perl应用程序的左,右和中心.
如何在禁用此警告的情况下运行Perl?我可以用Perl解释器运行一个标志吗?请注意,编辑源不是一个选项.
这在Perl 5.14中有所改变 - 见perldelta.
使用qw(...)作为括号
从历史上看,解析器自欺欺人地认为qw(...)文字总是括在括号中,因此你有时可以省略它们周围的括号:
Run Code Online (Sandbox Code Playgroud)for $x qw(a b c) { ... }解析器不再以这种方式对自己说谎.用括号括起列表文字,如下所示:
Run Code Online (Sandbox Code Playgroud)for $x (qw(a b c)) { ... }这已被弃用,因为$ i(1,2,3){...}中的括号不是表达式语法的一部分.它们是语句语法的一部分,而for语句需要字面括号.qw表达式获得的合成括号仅用于表达语法的一部分.
看起来您可以关闭警告,no warnings 'qw'但是修复代码要好得多.
作为系统管理员,我发现不良代码是不可接受的.
当然,最好的答案是修复有问题的perl脚本.
如果您的企业不允许您修复有问题的perl脚本,那么请不要升级Debian.
你有任何风险.