2010-04-05 50 views

回答

9

致命模塊已添加到版本5.05(1998)中的Perl核心。致命模塊在API中存在一些明顯的缺陷和不一致之處,無法以向後兼容的方式修復(即修復API會破壞使用致命的現有代碼)。

較新的autodie模塊被編寫爲提供更一致的API,並且允許將附註的效果設置爲詞彙範圍而不是全局(可能會產生意想不到的副作用)。

如果您有選擇,您絕對應該選擇autodie。它將作爲即將發佈的5.12版Perl中的核心模塊。

autodie模塊需要Perl 5.8。關於你使用致命的唯一原因是,如果你被一個真正舊版本的Perl(例如:5.6)所困住,但是自2002年以來5.8版本已經出來,所以希望對你來說不是這樣。

+0

@grant - 真正有用的解釋 – justintime 2010-04-06 06:33:47

6

引述Fatal文檔

致命由新autodie編譯已過時。請使用autodie優先於致命。 autodie支持詞法範圍,拋出真正的異常對象,並提供更好的錯誤信息。

2

另一個理由使用autodie代替Fatal是爲了避免這種錯誤(來自Fatal文檔的BUGS部分):

致命則會覆蓋在其中一個 函數被調用,並始終使上下文它是一個標量上下文,除了使用 :void標籤時。 autodie中不存在此問題 。

相關問題