2011-10-10 46 views
-2

我正在寫一個加載器程序來解密源文件並運行它們。每個源文件都包含一個基於的程序,其中包含用戶可用於退出用戶界面的子例程。我需要在用戶退出後運行一些清理工作,但不知道如何捕獲這些調用exitdie,以便所需文件之後的清理代碼可以執行,有什麼想法?Perl更好的方式退出所需的文件

回答

3

您可以通過包裝的代碼在eval塊,如趕上die電話:

eval { 
    require Module::that_dies; 
}; 
if ([email protected]) { 
    # handle the exception here 
} 

這不會幫助exit雖然。我相信你可以運行代碼exitEND{}塊中運行清理,但是請注意,這將在任何退出後運行,而不僅僅是如果您需要的模塊退出。

END { 
    # code that runs after exit 
} 

require Module::that_exits; 

瞭解更多關於END塊perldoc perlmod

+0

哇,謝謝,我一些如何完全掩蓋了的perldoc的部分'exit'是關於'END會談{}'塊!在這裏推出這個東西會很棒,因爲我可以測試一下,看看數據庫存在的目錄是否存在,如果不是,則不需要使用它!再次感謝 – rolands

+0

問題需要重新編輯之前需要進行編輯。 –