问题 在使用严格之前是否有理由使用警告?


我记得在某个地方看过一些评论

use warnings;
use strict;

是优选的(而不是使用 strict 首先,因为我不习惯)。我的记忆力是否正确?订单是否重要,如果确实如此,以何种方式?


8020
2018-06-20 13:49


起源

有一次我在桥上看到这个人要跳。我说,“不要这样做!”他说,“我不想再活了。”我说,“你做什么工作?”他说,“我开发软件。”我说,“我也是!桌面或网络?”他说,“网络。”我说,“我也是!前端还是后端?”他说,“后端。”我说,“我也是!Perl或Java?”他说,“Perl。”我说,“我也是!老派还是追随现代运动?”他说,“现代Perl。”我说,“我也是!在样板限制之前发出警告,反之亦然?”他说,“先警告。”我说,“死,异教徒!”我把他推倒了。 - daxim
从中抄下来 en.wikiquote.org/wiki/Emo_Philips - daxim
Perl :: Critic抱怨,或者至少习惯,如果你没有先发出警告。这可能是你获得印象的地方。 - Ashley
我认为不使用 use strict; 应该是一个警告,我把 use strict; 第一个:) - ikegami


答案:


我看不出订单有多重要的技术原因。我总是把 use strict 首先,它发生了但除了我一直这样做之外没有任何理由!


6
2018-06-20 13:54



我不能,但不知何故有一个我必须信任的人对这个评论的唠叨记忆,所以我想要一劳永逸地休息;-) - Sinan Ünür


简单:如果你这样做 use strict 在你做之前 use warnings,如果你正在使用,你不会收到警告 use strict 错误。 DUH!

实际上,我总是以另一种方式完成它。我的肛门保留让我按字母顺序放了两个pragma。我从来不知道有这样或那样的理由。

哎呀, perldoc使用 显示放置 use strict 之前 use warnings这就是我在大多数官方Perl示例中看到的内容。

我怀疑这是一个文化原因。最初在Perl中,使用警告,您可以使用

#! /usr/bin/perl -W

在你的程序的第一行。该 use strict pragma后来出现,后来才发生 use warnings 一个pragma。因此,程序(一段时间)写成:

#! /usr/bin/perl -W

use strict;

当。。。的时候 -W 参数不合时宜,你只需补充一下 use warnings 在shebang正下方:

#! /usr/bin/perl

use warnings;
use strict;

我喜欢Stackoverflow的一个原因是你可以学习以前从未知道的新东西。我很想知道某人是否有一个实际的理由,为什么它应该是一种方式而不是另一种方式。


3
2018-06-20 14:59





我想,也许,在Perl 5.8.9和更老的地方 strict 当你没有警告 use Strict 在不区分大小写的文件系统上,有 warnings 首先会有所帮助。我在我的Windows XP系统上构建了5.8.9而它没有:

C:\Temp> cat t.pl
use warnings;
use Strict;

C:\Temp> c:\opt\perl-5.8.9\bin\perl.exe t.pl

C:\Temp>

那是在黑暗中拍摄的。我得出的结论是,只要没有干预声明,这个命令就不重要了。


3
2018-06-20 20:29