質問

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

my $f1 = "$pre_file";

 unless (-e $1) {

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

 die;

 } 

次の出力を印刷します。

pre_checkファイルは存在しません!
./huawei-postcheck line 81で死亡。

しかし、私は最後の行が「./huawei-postcheck line 81で死んだ」を望んでいません。

エラーメッセージなしで「死ぬ」ことを望んでいます。

出来ますか?

役に立ちましたか?

解決

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

die "\n";

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

他のヒント

のドキュメントを参照してください 死ぬ.

リストの最後の要素がNewlineで終了しない場合、現在のスクリプト行番号と入力行番号(ある場合)も印刷され、新しいラインが提供されます。

だからあなたはただ使用することによって何も印刷せずに仕事に死ぬことができます die "\n". 。しかし、エラーメッセージがあることを考えると、なぜそれを使用しないのかわかりません。

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

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

使用する exit それ以外の die.

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

my $f1 = "$pre_file";

unless (-e $1) {
    print "\n Pre_check file does not exists! \n";
    exit 1;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top