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"。code

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

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

默認狀況下,die都會自動加上程序名和發生錯誤的行號。若是不想要這些消息,能夠手動在die的末尾加上\n符號。file

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

使用autodie特性,能夠perl

#!/usr/bin/perl

use autodie;
open LOG,"<","/tmp/a.log";
close LOG;
相關文章
相關標籤/搜索