“使用警告”之间有区别吗?并“使用警告'全部';”?

时间:2016-07-02 16:44:11

标签: perl

我习惯使用

启动我的每个脚本
use strict;
use warnings;

但是这里的一些高级研究员推荐

use warnings 'all';

如果我理解他们,后者甚至比第一次更好。所以我通读了docs并找到了

  

通过以下任何一种方式在块中启用所有警告:

use warnings;
use warnings 'all';

即使Camel Book没有任何不同之处:

use warnings;   # same as importing "all"

所以

  • 存在差异,或者
  • 它是否更具有前瞻性(如果我们现在不知道Perl问题的未来版本警告,use warnings;将无法捕获),或
  • 它只是另一种习惯,例如ps -efps aux?有些人使用这个,而有些人更喜欢另一个。

2 个答案:

答案 0 :(得分:14)

目前,

use warnings;

相当于

use warnings 'all';

但是,有talk on perl5porters将其更改为

use warnings 'default';

新的"不那么关键"警告将被添加到"所有"类别但默认不显示。由于似乎正在认真考虑这种变化,因此明确地use warnings 'all';会更安全。

之前关于p5p的讨论:

RFC: Support for new warning categories outside of "all"

I've added support for new warning categories outside of "all" to blead

答案 1 :(得分:2)

一个比另一个更明确,但正如文档中所述,它们具有相同的效果。最好使用'all'导入列表来更清楚地表明所有警告都已启用。这对于那些可能不熟悉Perl的人也很有帮助。如果有疑问,明确通常比隐含更好。