Perl:如何“死亡”而不显示错误消息?

7

我用下面的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行终止。”。
我想让程序 “无错误信息” 终止。
这可能吗?
5个回答

16

请参阅die文档。

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

因此,您可以通过使用die "\n"来使die工作而不打印任何内容。但是,考虑到您有错误消息,我看不出为什么您不使用它。

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

当然,区别在于消息现在将会被发送到标准错误流(STDERR),而不是标准输出流(STDOUT)。但这可能是它应该去的正确位置。


9

使用exit代替die


2
@Arkadiy,如果你想模拟它,die实际上使用$! || $?>>8 || 255 - ikegami

6
您可能希望使用exit 1来代替直接退出。

5
你可以直接说
die "\n";

抑制消息。


3
my $f1 = "$pre_file";

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接