5

我使用以下代码在 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 line 81.”。

我想“死”而没有错误消息。

是否可以?

4

5 回答 5

15

请参阅die的文档。

如果 LIST 的最后一个元素没有以换行符结尾,则还会打印当前脚本行号和输入行号(如果有),并提供换行符。

因此,您只需使用die "\n". 但是鉴于您有一条错误消息,我不明白您为什么不使用它。

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

当然,不同之处在于消息现在将发送到 STDERR 而不是 STDOUT。但这可能是它去的正确地方。

于 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 回答