[Roma.pm] perl e tastiera

Emanuele Zeppieri ema_zep at libero.it
Fri Jun 30 16:56:35 PDT 2006


-----Original Message-----
From: roma-bounces+ema_zep=libero.it at pm.org
[mailto:roma-bounces+ema_zep=libero.it at pm.org] On Behalf Of Staff Staff
Sent: Wednesday, June 28, 2006 11:30 PM
To: roma at pm.org
Subject: Re: [Roma.pm] perl e tastiera

> asp, cerco di spiegarmi meglio, il progamma che ho fatto,
> lancia diversi prog in back ground, tipo per ex ping,
> se il ping richiede troppo tempo(macchina occupata)
> posso comandare al pc di fare cltr+c  uscendo da ping,
> ma non dal prog, mi spiego?

In generale, per mandare in timeout operazioni che si prolungano troppo,
si usa $SIG{ALRM} (cioè SIGALRM), assegnandovi un handler che
semplicemente invoca die(), e wrappando l'operazione long-running in una
eval{...} (o meglio 2 eval{...} annidate, per intercettare anche errori
di altra origine).
Se non è chiaro e/o se non riesci a trovare esempi confacenti al tuo
caso, fammi sapere che posso postare del codice esplicativo.

Detto tutto questo, se devi soltanto mandare in timeout dei ping, allora
banalmente usa Net::Ping, che gestisce il timeout per conto suo senza
che tu debba fare niente:

$p = Net::Ping->new;
$p->ping($host, $timeout);

http://search.cpan.org/~bbb/Net-Ping-2.31/

Ciao,
Emanuele.




More information about the Roma mailing list