5

以下のコードを使用して、perl で簡単なファイル テストを実行します。

my $f1 = "$pre_file";

 unless (-e $1) {

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

 die;

 } 

次の出力が出力されます。

Pre_check ファイルが存在しません!
./huawei-postcheck 行 81 で死亡しました。

ただし、最後の行「Died at ./huawei-postcheck line 81.」は必要ありません。

エラーメッセージなしで「死にたい」。

出来ますか?

4

5 に答える 5

15

dieのドキュメントを参照してください。

LIST の最後の要素が改行で終わらない場合、現在のスクリプト行番号と入力行番号 (存在する場合) も出力され、改行が提供されます。

したがって、を使用するだけで、何も印刷せずにダイを動作させることができますdie "\n"。しかし、エラー メッセージがあることを考えると、なぜそれを使用しないのかわかりません。

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

もちろん、違いは、メッセージが STDOUT ではなく STDERR に送られることです。しかし、それはおそらくそれが行くのに適した場所です。

于 2011-10-19T11:37:24.257 に答える
8

exitの代わりに使用しdieます。

于 2011-10-19T11:07:03.970 に答える
5

exit 1あなたはおそらく死ぬ代わりにしたいでしょう。

于 2011-10-19T11:07:20.870 に答える
5

あなたはただ言うことができます

die "\n";

メッセージを抑制します。

于 2011-10-19T13:33:48.677 に答える
3
my $f1 = "$pre_file";

unless (-e $1) {
    print "\n Pre_check file does not exists! \n";
    exit 1;
}
于 2011-10-19T11:09:14.500 に答える