Perl:如何在没有错误消息的情况下“死”?
Posted
技术标签:
【中文标题】Perl:如何在没有错误消息的情况下“死”?【英文标题】:Perl: How to "die" with no error message? 【发布时间】:2011-12-10 20:16:02 【问题描述】:我用下面的代码在 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。”。
我想在没有错误信息的情况下“死”。
有可能吗?
【问题讨论】:
【参考方案1】:请参阅die 的文档。
如果 LIST 的最后一个元素不以换行符结尾,则当前 还打印脚本行号和输入行号(如果有), 并提供了一个换行符。
因此,您只需使用 die "\n"
即可在不打印任何内容的情况下开始工作。但是鉴于您有一条错误消息,我看不出您为什么不使用它。
unless (-e $f1)
die "\n Pre_check file does not exist!\n";
当然,不同之处在于消息现在将发送到 STDERR 而不是 STDOUT。但这可能是它去的正确地方。
【讨论】:
【参考方案2】:使用exit
而不是die
。
【讨论】:
@Arkadiy,die
实际上使用$! || $?>>8 || 255
,如果你想模仿它。【参考方案3】:
你可以说
die "\n";
隐藏消息。
【讨论】:
【参考方案4】:你可能想exit 1
而不是死。
【讨论】:
【参考方案5】:my $f1 = "$pre_file";
unless (-e $1)
print "\n Pre_check file does not exists! \n";
exit 1;
【讨论】:
以上是关于Perl:如何在没有错误消息的情况下“死”?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有错误消息或异常的情况下调试 PowerShell 进程