我在Windows上有一个Perl程序,需要在退出时执行清理操作。我使用了`sigtrap`编写了一个信号处理程序,但它并不总是有效。我可以拦截Ctrl-C,但如果机器重新启动或以其他方式终止程序,则既不运行信号处理程序也不运行END块。我读到Windows实际上没有信号,在Perl中,Windows的信号处理有点像黑客。我的问题是,如何以Windows方式处理异常终止?我想运行我的清理代码,无论程序如何或为什么终止(除了无法捕获的事件)。我读到Windows使用事件而不是信号,但我找不到有关如何在Perl中处理Windows事件的信息。
不幸的是,我没有安装来自CPAN的模块的权限,所以我必须使用原始的ActiveState Perl。更有趣的是,我使用的大多数机器只有Perl 5.6.1。
编辑:我将感激任何答案,即使它们需要CPAN模块或更新版本的Perl。我想了解Perl中的Windows事件处理,欢迎提供任何信息。
不幸的是,我没有安装来自CPAN的模块的权限,所以我必须使用原始的ActiveState Perl。更有趣的是,我使用的大多数机器只有Perl 5.6.1。
编辑:我将感激任何答案,即使它们需要CPAN模块或更新版本的Perl。我想了解Perl中的Windows事件处理,欢迎提供任何信息。