在Windows上,我想只在脚本死亡时执行某些操作。 下面的块没有帮助;我认为这是因为Windows不支持信号。
$SIG{__DIE__} = sub {
qx(taskkill /F /IM telnet.exe);
CORE::die @_;
}
然后我尝试了这个:
END {
qx(taskkill /F /IM telnet.exe);
exit $exit_code;
}
它执行了taskkill
,但退出了退出代码0.我需要传播exit_code
,因为我们会根据它进行进一步处理。
答案 0 :(得分:8)
END
块可以设置$?
来控制退出值。
END {
qx(taskkill /F /IM telnet.exe);
$? = $exit_code;
}