关于perl中Exit的函数使用
o exit EXPR
o exit
这个函数把 EXPR 当作一个整数计算然后立即以该数值为最终的程序错误状态
退出。如果省略了 EXPR,那么该函数以 0 状态退出(意思是“没有错误”)。
同时,函数的状态是0代表着程序执行成功后推出,如果是1代表是程序执行失败
后推出。当然,函数的状态还可以取其他的值,但是眼根据perl语言具体运行的环境。
下面是一个程序片段,它让用户通过敲入 x 或 X 退出程序:
$ans =
exit if $ans =~ /^[Xx]/;
如果别人有任何机会可以捕获所发生的任何错误,那么你就不应该用 exit 退出
子过程。应该用 die,它可以用一个 eval 捕获。或者使用 Carp 模块的 die 的
封装,比如 croak 或者 confess。
我们说 exit 函数立即退出,但这是一个赤裸裸的谎言。它尽可能快地退出,但
是它首先调用任何已经定义了的 END 过程做退出时处理。这些过程无法退出
exit,尽管它们可以通过设置 $? 变量改变最终的退出值。同样,任何定义了
DESTROY 方法的类都将在程序真正退出前代表它的所有对象调用该方法。如果你
确实需要忽略退出处理,那么你可以调用 POSIX 模块的 _exit 函数以避免所有
END 和析构器处理。而如果没有 POSIX 可用,你可以 exec "/bin/false" 或者
类似的东西。