Función de alarma Perl

Descripción

Esta función establece la "alarma", lo que hace que el proceso actual reciba una señal SIGALRM en EXPR segundos. Si se omite EXPR, se usa el valor de $ _ en su lugar.

El retardo de tiempo real no es preciso, ya que diferentes sistemas implementan la funcionalidad de alarma de manera diferente. El tiempo real puede ser hasta un segundo más o menos que el valor solicitado. Solo puede configurar un temporizador de alarma a la vez. Si ya se está ejecutando un temporizador y realiza una nueva llamada a la función de alarma, el temporizador de alarma se restablece al nuevo valor. Un temporizador en ejecución se puede restablecer sin configurar un nuevo temporizador especificando un valor de 0.

Sintaxis

A continuación se muestra la sintaxis simple para esta función:

alarm EXPR

alarm

Valor devuelto

Esta función devuelve un valor entero, es decir. número de segundos restantes para el temporizador anterior.

Ejemplo

A continuación se muestra el código de ejemplo que muestra su uso básico:

#!/usr/bin/perl

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