Perl:如何“死”,没有错误信息?

时间:2011-10-19 11:05:17

标签: perl die

我在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 个答案:

答案 0 :(得分:14)

请参阅die的文档。

  

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

因此,只需使用die "\n"即可完成工作而无需打印任何内容。但鉴于您有错误消息,我不明白为什么您不使用它。

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

当然,区别在于消息现在将转到STDERR而不是STDOUT。但这可能是它的最佳去处。

答案 1 :(得分:7)

使用exit代替die

答案 2 :(得分:4)

您可能希望exit 1而不是死亡。

答案 3 :(得分:4)

你可以说

die "\n";

取消消息。

答案 4 :(得分:3)

my $f1 = "$pre_file";

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