Perl报警函数



描述

此函数设置“警报”,导致当前进程在 EXPR 秒后收到 SIGALRM 信号。如果省略 EXPR,则使用 $_ 的值。

实际时间延迟不精确,因为不同的系统实现报警功能的方式不同。实际时间可能比请求值多或少一秒。你一次只能设置一个警报计时器。如果计时器正在运行,而你对警报函数进行新的调用,则警报计时器重置为新值。可以重新设置正在运行的计时器,而无需指定值 0 来设置新的计时器。

语法

以下是此函数的简单语法 −

alarm EXPR

alarm

返回值

此函数返回整数值,即为上一个计时器剩余的秒数。

示例

以下是显示基本用法的示例代码 −

#!/usr/bin/perl

eval {
   local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
   alarm $timeout;
   $nread = sysread SOCKET, $buffer, $size;
   alarm 0;
};
if ($@) {
   die unless $@ eq "alarm\n";   # propagate unexpected errors
      # timed out
} else {
   # didn't
}
perl_function_references.htm
广告