使用perl我几乎总是使用:
use strict;
use diagnostics;
我建议“使用诊断”代替use warnings;
here,我收到了一些负面反馈。所以,现在我在想:
use diagnostics;
是否有任何问题?
答案 0 :(得分:17)
diagnostics
不是warnings
之类的词汇编辑。相反,它设置全局$^W
变量(如使用-w
标志),它会为所有代码启用警告,无论是否需要,以及是否编写或不。那有点粗鲁。 diagnostics
在制作中也很愚蠢。如果您需要解释,我建议您使用warnings
然后将警告发送至splain
。
答案 1 :(得分:9)
use diagnostics
会使代码的执行速度超过use warnings
。如果您在开发过程中收到不明白的警告,可以将其打开,但最好在完成后将其关闭。
答案 2 :(得分:8)
诊断编译指示是一种开发工具,也是您不常需要的工具。根据需要使用它:
$ perl -Mdiagnostics myprog
使用命令行-M
switch启用pragma意味着您不必记得返回并从代码中删除仅测试use diagnostics
行。
答案 3 :(得分:0)
如果您尚未升级到perl版本5.12,诊断会出现屏蔽特定警告的错误。该错误已在5.12中修复(请参阅perl512delta):
诊断不再抑制使用 范围内的未初始化值(或 翻转)警告。 [perl#71204]
一旦我意识到这个错误,我就回去并在我的所有代码中评论use diagnostics;
。如果我收到警告信息,我暂时取消注释,但总是回去再次发表评论。