2011-10-19 93 views
2

我在Perl运行一个简单的文件测试用下面的代码: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死”。

我想“死”,没有错误信息。

可能吗?

回答

4

你可以只说

die "\n"; 

消息打压。

+0

适合我的要求....谢谢 – Mahesh

7

使用exit而不是die

+1

退出(1)准确地说 – Arkadiy

+2

@Arkadiy,'die'实际上使用'$! || $?>> 8 || 255',如果你想模仿它。 – ikegami

4

您可能想要exit 1而不是死亡。

3
my $f1 = "$pre_file"; 

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

请参阅die的文档。

如果列表的最后一个元件不换行结束,则当前 脚本行号和输入的行号(如果有的话)也被印刷, 和一个换行供给。

因此,只需使用die "\n"即可在没有打印任何东西的情况下工作。但鉴于你有错误信息,我不明白你为什么不使用它。

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

当然,不同的是,该消息现在会去到STDERR,而不是STDOUT。但这可能是它去的正确的地方。

+0

+1教导更好的做法。 – daxim

相关问题