2011-10-19 92 views
2

我在Perl運行一個簡單的文件測試用下面的代碼:Perl:如何在沒有錯誤信息的情況下「死亡」?

my $f1 = "$pre_file"; 

unless (-e $1) { 

print "\n Pre_check file does not exists! \n"; 

die; 

} 

它輸出以下:

Pre_check文件不存在!
死在./huawei-postcheck線81

不過,我不希望最後一行「在./huawei-postcheck線81死」。

我想「死」,沒有錯誤信息。

可能嗎?

回答

4

你可以只說

die "\n"; 

消息打壓。

+0

適合我的要求....謝謝 – Mahesh

7

使用exit而不是die

+1

退出(1)準確地說 – Arkadiy

+2

@Arkadiy,'die'實際上使用'$! || $?>> 8 || 255',如果你想模仿它。 – ikegami

4

您可能想要exit 1而不是死亡。

3
my $f1 = "$pre_file"; 

unless (-e $1) { 
    print "\n Pre_check file does not exists! \n"; 
    exit 1; 
} 
13

請參閱die的文檔。

如果列表的最後一個元件不換行結束,則當前 腳本行號和輸入的行號(如果有的話)也被印刷, 和一個換行供給。

因此,只需使用die "\n"即可在沒有打印任何東西的情況下工作。但鑑於你有錯誤信息,我不明白你爲什麼不使用它。

unless (-e $f1) { 
    die "\n Pre_check file does not exist!\n"; 
} 

當然,不同的是,該消息現在會去到STDERR,而不是STDOUT。但這可能是它去的正確的地方。

+0

+1教導更好的做法。 – daxim

相關問題