我使用语法检查来查看我的Perl脚本是否以正确的方式使用。如果语法不正确,我将显示一条消息,说明正确的语法是什么,然后结束程序的执行。
在……之外
print "Please use the following Syntax: ..."; exit 1;
和
die("Please use the following Syntax: ...");
我应该使用哪一个?我知道,如果异常处理到位,将会是答案。但事实并非如此。
哪一个是没有异常处理的程序终止的更好的选择?请说为什么也。
解决方法
这取决于你想用STDERR和STDOUT发生什么。我喜欢发送错误和警告类型消息到STDERR,以便当有人试图将输出重定向到一个文件,他们仍然看到错误消息;然而,有时,虽然当STDOUT被用于向用户传达状态,所以他或她可以尾随或分页它,并且在那些时候写入STDERR导致他们痛苦(他们必须重定向STDERR回到STDOUT与2> & 1,而不是每个人都知道如何做到)。所以使用,死或打印和退出,很大程度上取决于您正在编写的程序类型。
使用模具还有其他好处/缺点:
>你可以使用eval陷阱死亡,但不退出
>通过为__DIE__信号安装信号处理程序,可以在程序调用时运行代码
>您可以轻松覆盖die功能
每个人都有时间,它是方便的能够做到的,和时间,它是一个痛苦,他们可以做。