我有一個每月運行的腳本,用于存檔上個月的檔案。我正在使用Archive::Tar來生成歸檔。我怎樣才能檢查對->write方法的呼叫是否成功?
下面的方法可行嗎?我還沒有設法使$tar->write()失敗。
unless ($tar->write( $name . ' .tar.xz', COMPRESS_XZ ) ) {
die("cant write tar"); # 或任何其他操作代替。
}
uj5u.com熱心網友回復:
是的,你問題中的代碼將捕獲->write中的任何錯誤。
Archive::Tar的檔案沒有說明write的回傳值是什么(除非沒有提供引數,這里不是這種情況)。然而,看看模塊的代碼,write在出現錯誤時回傳undef,在成功時回傳一個真值:
1如果是寫到一個檔案(你問題中的代碼就是這種情況)如果是寫入字串,則寫入的字串
。
注意,如果出了問題,并且Archive::Tar回傳undef,那么它也將列印一個錯誤資訊(除非你通過執行$Archive::Tar::WARN設定為0)。如果你想根據錯誤做一些特定的事情,你可以使用->error方法訪問錯誤訊息。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/311353.html
標籤:
