Funzione di allarme Perl
Descrizione
Questa funzione imposta l '"allarme", facendo in modo che il processo corrente riceva un segnale SIGALRM in EXPR secondi. Se EXPR viene omesso, viene utilizzato il valore di $ _.
Il ritardo effettivo non è preciso, poiché sistemi diversi implementano la funzionalità di allarme in modo diverso. Il tempo effettivo può essere fino a un secondo in più o in meno rispetto al valore richiesto. È possibile impostare solo una sveglia alla volta. Se un timer è già in esecuzione e si effettua una nuova chiamata alla funzione di allarme, il timer della sveglia viene ripristinato al nuovo valore. Un timer in esecuzione può essere ripristinato senza impostare un nuovo timer specificando un valore di 0.
Sintassi
Di seguito è riportata la semplice sintassi per questa funzione:
alarm EXPR
alarm
Valore di ritorno
Questa funzione restituisce un valore intero, ad es. numero di secondi rimanenti per il timer precedente.
Esempio
Di seguito è riportato il codice di esempio che mostra il suo utilizzo di base:
#!/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
}