Perl的die和warn函數


die和warn

  • die可以在出現錯誤的時候停止程序,並給出消息。默認會輸出出錯的程序名稱和出錯行號
  • warn函數和die函數類似,但和die的區別是不會終止程序
  • die和warn的參數末尾如果給了\n,將不會輸出出錯的程序名稱和出錯的程序行號
  • use autodie;可以自動探測操作系統層面上的錯誤並停止程序

例如,下面打開文件的操作:

if ( ! open LOG "<" "/tmp/a.log" ){
    die "open file wrong: $!";
}

上面$!是收集操作系統報告的錯誤,並由perl報告出來。例如沒有/tmp/a.log文件,上面的程序段落就會報錯:

wrong open file: No such file or directory at 6.plx line 8.

其中的$!對應的消息是"No such file or directory"。

並不是每個錯誤都會有操作系統對應的錯誤。有些錯誤是perl自身的問題,這時候就不需要$!

if ( @ARGV < 2 ){
    die "wrong! get help!"
}

默認情況下,die都會自動加上程序名和發生錯誤的行號。如果不想要這些消息,可以手動在die的末尾加上\n符號。

if ( @ARGV < 2 ){
    die "wrong! get help!\n"
}

使用autodie特性,可以

#!/usr/bin/perl

use autodie;
open LOG,"<","/tmp/a.log";
close LOG;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM