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

Mah*_*esh 3 perl die

我在perl中运行一个简单的文件测试,代码如下:

my $f1 = "$pre_file";

 unless (-e $1) {

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

 die;

 } 
Run Code Online (Sandbox Code Playgroud)

它打印以下输出:

Pre_check文件不存在!
死于./huawei-postcheck第81行.

但是我不希望最后一行"死于./huawei-postcheck第81行".

我想"死",没有错误信息.

可能吗?

Dav*_*oss 14

请参阅die的文档.

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

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

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

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


rer*_*run 7

exit而不是die.

  • @Arkadiy,`die`实际上使用`$!|| $?>> 8 || 255`,如果你想模仿它. (2认同)

Que*_*tin 5

You probably want to exit 1 instead of dying then.


Bil*_*ert 5

你可以说

die "\n";
Run Code Online (Sandbox Code Playgroud)

禁止显示该消息。