我在Windows上有一個需要在退出時執行清理操作的Perl程序。我用sigtrap
編寫了一個信號處理程序,但它並不總是有效。我可以攔截Ctrl-C,但是如果機器重新啓動或程序以其他方式死亡,那麼信號處理程序和END塊都不會運行。我已經讀過Windows沒有真正的信號,並且Windows上的信號處理在Perl中是一種破解。我的問題是,我怎樣才能處理異常終止Windows的方式?我想運行我的清理代碼,不管程序終止的方式或原因(不包括無法捕獲的事件)。我讀過Windows使用事件而不是信號,但是我找不到有關如何在Perl中處理Windows事件的信息。如何在Windows上處理Perl中的異常程序終止
不幸的是,我沒有權限從CPAN安裝模塊,所以我必須使用vanilla ActiveState Perl。爲了讓事情更有趣,我使用的大多數機器都只有Perl 5.6.1。
編輯:我將不勝感激任何答案,即使他們需要CPAN模塊或更新版本的Perl。我想了解Perl中的Windows事件處理,並且歡迎任何信息。
Perl 5.6.1 ..這是什麼,像10歲?你在這些機器上獲得了Win98/2000/ME? =) – TLP
我們在所有臺式機上使用Windows XP。當微軟停止支持XP時,我們希望能夠在Windows 7上運行。不管信不信,我們的一些機器仍然使用IE6,因爲我們的一些內部應用程序不會運行其他任何程序。 – Jonathan
我的意思是說,perl 5.6.1和這些操作系統一樣陳舊。它總是讓我想知道爲什麼人們不更新perl。這不像是不更新任何其他軟件的好主意。 – TLP