在 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,因为我们基于它做进一步处理。

最佳答案

END 块可以设置 $? 来控制退出值。

END {
      qx(taskkill /F /IM telnet.exe);
      $? = $exit_code;
}

10-07 15:02