如何找到perl中收到的信号?

我写了一个简单的程序来处理一些信号.
我的计划是,

#!/usr/bin/perl

use strict;
use warnings;

$SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&signal_handler;

sub signal_handler
{

print " ".localtime()." Handled the signal\n";

};

while(1)
{
  sleep(1);
}

在与信号处理程序对应的%SIG哈希中指定了哪些信号
将在收到信号时被呼叫.
我为三个信号声明了一个信号处理程序.

我想找到收到的信号.

在C中,它将通过信号处理程序参数本身给出信号编号.

例,

void sig_handler(int signo);

我不知道在perl.I试图找到.但是,我没有找到任何答案.

解决方法

信号名称(INT,TERM等)作为参数传递给信号处理程序.你可以写例如:

sub signal_handler
{
    my $signal = shift;
    print " ".localtime()." Handled the signal $signal\n";
}

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...