我有一個對象,我做了很多東西,然後通過調用一個TidyUp()方法來完成,該方法顯示關於發生了什麼的一些統計信息。Perl檢測DESTROY作爲結果死()
作爲內部測試的一部分,我想要檢測何時這些對象正在創建,但在程序退出之前未被整理,並且在那種情況下死亡。
所以我給TidyUP()中設置的對象添加了一個標誌,如果這個標誌沒有設置,那麼這個類的DESTROY子例程會死掉。
這一切都很好,但它有一個不幸的副作用。如果程序中出現其他問題,導致死亡被調用,那麼全球破壞就會引發我的DESTROY,它注意到物體尚未被整理並死亡。問題是我在這一點上失去了原來的死信息。
所以我想檢測是否由於死亡或者正常程序退出而發生了破壞,只有在後一種情況下添加我的新死亡。
我看了一下Detecting global destruction in Perl,但我不認爲這有幫助,因爲我想檢測什麼觸發了全球性破壞。
使用Devel :: Leak? – ikegami
或END塊? – ysth
進一步檢查發現死信息正在消失 - 這是在我寫出有關未整理對象的信息之前。但是,我仍然希望跳過未整理的對象檢查 - 我會檢查$?一試... –