用Perl我幾乎總是使用:「使用診斷」有什麼問題嗎?
use strict;
use diagnostics;
我建議「使用診斷」,而不是use warnings;
here,我收到了一些負面的反饋。所以,現在我在想:
use diagnostics;
有什麼問題嗎?
用Perl我幾乎總是使用:「使用診斷」有什麼問題嗎?
use strict;
use diagnostics;
我建議「使用診斷」,而不是use warnings;
here,我收到了一些負面的反饋。所以,現在我在想:
use diagnostics;
有什麼問題嗎?
diagnostics
不是像warnings
這樣的詞彙雜注。相反,它會設置全局的$^W
變量(如使用-w
標誌),該變量會啓用全部代碼的警告,無論是否需要,以及是否寫入該代碼。這很粗魯。 diagnostics
在生產中也很愚蠢。如果您需要解釋,我會建議您使用warnings
,然後將您的警告管道輸入splain
。
use diagnostics
將使您的代碼的執行速度減慢超過use warnings
。如果您在開發過程中收到警告,您可以將其打開,但最好在完成後將其關閉。
+1儘管如此,編寫不會發出警告和/或診斷的代碼仍然是最好的開始。 ;-) –
診斷編譯指示是一種開發工具,而且你不經常需要。使用它在需要的基礎上:
$ perl -Mdiagnostics myprog
與命令行-M
switch意味着你不必記得回去和你的代碼中刪除測試只use diagnostics
線啓用編譯。
如果您還沒有升級到perl版本5.12,診斷有一個掩蓋特定警告的錯誤。該bug已被固定在5.12(見perl512delta):
診斷不再抑制未初始化值的範圍內使用 (或 翻轉)警告。 [perl#71204]
一旦我意識到這個錯誤,我回去並在我所有的代碼中註釋了use diagnostics;
。如果我收到警告信息,我暫時取消註釋,但總是返回並重新註釋。
我正要問同樣的問題。 :) +1 –