5
如何設置在Perl腳本停止前必須執行的代碼?在Perl腳本結束之前總是執行一些代碼
在這裏how to run piece of code just before the exit of perl script我讀了關於END子程序,但只有在腳本正常結束時纔會執行。但是,如果例如用戶通過^ C中止程序,我想要執行代碼。
如何設置在Perl腳本停止前必須執行的代碼?在Perl腳本結束之前總是執行一些代碼
在這裏how to run piece of code just before the exit of perl script我讀了關於END子程序,但只有在腳本正常結束時纔會執行。但是,如果例如用戶通過^ C中止程序,我想要執行代碼。
陷阱的終止信號和重新路由他們這樣的東西,最簡單的是:
$SIG{TERM} = $SIG{INT} = $SIG{QUIT} = $SIG{HUP} = sub { die; };
謝謝你,這個工作。只有我得到了指定的子程序在^ C信號後執行三次... – 2012-07-11 13:13:05
@Janis所以,現在你知道,^ C信號是一個3個不同的信號;)也許你只想使用一個信號,比如'QUIT'或者'TERM'或'INT'。只重新路由其中之一。 – gaussblurinc 2012-07-11 13:18:08
或者你可以讓'sub'記住它已經被調用。 ['state'](http://perldoc.perl.org/functions/state.html)關鍵字可能對此很有幫助。 – simbabque 2012-07-11 13:42:07