我是 perl 的新手,并尝试向我的脚本添加功能以捕获键盘中断和术语信号(如果抛出),然后发出操作系统命令来处理。在没有信号被抛出并且脚本成功执行的情况下,还需要发出相同的 OS 命令和子命令(注意 END 块)。据我从研究和测试中得知,您必须为每个信号注册一个信号处理程序。在每种情况下,它们都需要触发相同的 sub。这可以在一个 $SIG 中完成,还是我必须同时注册两个,每个信号一个?这是我的代码。
sub issueKdestroy{
system("kdestroy -q");
exit(1);
}
$SIG{INT} = (\&issueKdestroy);
$SIG{TERM} = (\&issueKdestroy);
END{
issueKdestroy();
}
从测试来看,这不起作用:
$SIG{'INT', 'TERM'} = (\&issueKdestroy);
它不会识别上述代码中的 INT 或 TERM。建议?