필자는 perl에 새로운 글이며 스크립트를 던지면 키보드 인터럽트와 term 시그널을 잡기 위해 스크립트에 기능을 추가하려고했다가 처리 할 OS 명령을 내 보낸다. 또한 신호가 보내지지 않고 스크립트가 성공적으로 실행되는 경우에도 동일한 OS 명령 및 하위 명령을 실행해야합니다 (END 블록 참고). 늘어나는만큼 연구 및 테스트에서 말할 수있는, 당신은 각 신호에 대한 신호 처리기를 등록해야합니다. 각각의 경우에, 그들은 동일한 하위를 트리거해야합니다. 하나의 $ 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
'$ SIG ($ _) = \ & qw (INT TERM)'에 대해 Kdestroy를 발행 하시겠습니까? – mob
'@SIG { 'INT', 'TERM'} = (\ & issueKdestroy) x 2'? – mob