“使用诊断程序”有问题吗?

时间:2011-06-18 15:57:06

标签: perl

使用perl我几乎总是使用:

use strict;
use diagnostics;

我建议“使用诊断”代替use warnings; here,我收到了一些负面反馈。所以,现在我在想:

use diagnostics;是否有任何问题?

4 个答案:

答案 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;。如果我收到警告信息,我暂时取消注释,但总是回去再次发表评论。