"使用警告"之间有区别吗?和"使用警告'全部';"?

Per*_*uck 13 perl

我有习惯用我的每个脚本启动

use strict;
use warnings;
Run Code Online (Sandbox Code Playgroud)

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

use warnings 'all';
Run Code Online (Sandbox Code Playgroud)

如果我理解他们,后者甚至比第一个更好.所以我通读了文档并找到了

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

use warnings;
use warnings 'all';
Run Code Online (Sandbox Code Playgroud)

即使是骆驼书,也没有什么不同:

use warnings;   # same as importing "all"
Run Code Online (Sandbox Code Playgroud)

所以

  • 是否存在差异,或者
  • 它是否更具有前瞻性(如果我们现在还没有发现Perl的未来版本警告,并且use warnings;不会捕获),或者
  • 它只是另一种习惯,比如说ps -efps aux吗?有些人使用这个,而有些人更喜欢另一个.

Thi*_*Not 14

目前,

use warnings;
Run Code Online (Sandbox Code Playgroud)

相当于

use warnings 'all';
Run Code Online (Sandbox Code Playgroud)

然而,关于perl5porters一直在谈论改变它的意思

use warnings 'default';
Run Code Online (Sandbox Code Playgroud)

新的"不太重要"的警告将添加到"所有"类别,但默认情况下不显示.由于看起来这种变化正在被认真考虑,因此use warnings 'all';明确地更加安全.

以前关于p5p的讨论:

RFC:支持"所有"之外的新警告类别

我已经添加了对"all"之外的新警告类别的支持

  • 重新说"*使用'警告'全部'更安全';`明确*,特别是对于经验较少的Perl程序员,因为这些将从更严格的警告中获得最大利益.这就是为什么我一直在推广'使用警告'全部' "在SO上.[我反对这种改变,因为期望经验不足的Perl程序员知道使用'使用警告'全部'是不切实际的;`而不仅仅是'使用警告;'考虑到文件的范围提示后者.它是对那些承诺"使用警告"的人来说也是一种向后不相容的变化;`会打开所有警告. (3认同)