3
我是perl的新手,嘗試向我的腳本添加功能以捕獲鍵盤中斷和術語信號(如果拋出),然後發出操作系統命令來處理。在沒有信號拋出和腳本成功執行的情況下(注意END塊),還需要發出相同的OS命令和子文件。據我從研究和測試中可以看出,你必須爲每個信號註冊一個信號處理程序。在每種情況下,他們都需要觸發相同的子。這可能在一個$ SIG中做,或者我必須註冊兩個,每個信號一個?這是我的代碼。perl指向一個子程序的多個sig處理程序
sub issueKdestroy{
system("kdestroy -q");
exit(1);
}
$SIG{INT} = (\&issueKdestroy);
$SIG{TERM} = (\&issueKdestroy);
END{
issueKdestroy();
}
從測試中,這不起作用:
$SIG{'INT', 'TERM'} = (\&issueKdestroy);
它不會承認INT或TERM在上面的代碼。 意見?
'$ SIG {INT} = $ SIG {TERM} = \&issueKdestroy'? – mob 2013-04-05 16:19:04
'$ SIG {$ _} = \&issueKdestroy for qw(INT TERM)'? – mob 2013-04-05 16:20:21
'@SIG {'INT','TERM'} =(\&issueKdestroy)x 2'? – mob 2013-04-05 16:22:48