通过引发异常
croak
在分叉子进程中,子进程似乎会像后台进程那样打印错误。也就是说,它会重击shell提示符。
如果我
die
呱呱叫
Carp
没有任何运气的文件。
这就是我的意思。这个
呱呱叫
$ perl Wrapper.pm
$ error: ... does not exist at Wrapper.pm line 624
这个
死亡
版本:
$ perl Wrapper.pm
error: ... does not exist at Wrapper.pm line 515.
我试着抓住那个
fork
印刷
$@
然后退出,但没有效果。有什么想法吗?我希望能够使用
呱呱叫
在这种特殊情况下。
虽然我的代码有点复杂,但下面是如何重现这种行为:
$ perl -MCarp -e 'unless (fork) {croak "child"}'
$ child at -e line 1
<- cursor blinking here. Pressing enter gives me a new prompt:
$
$ perl -e 'unless (fork) {die "child"}'
child at -e line 1.
$
解决了的:
got it
$ perl -e '$SIG{__DIE__} = sub {sleep 1}; unless (fork) {die "child"}'
$ child at -e line 1.
谢谢你的帮助!