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