Originariamente inviato da Claudio Vituzzi
grazie mille a tutti e due.

io comunque intendevo il controllare l'esistenza dei un file su disco mille volte al secondo, e non ogni 5-6 secs...

ciao!
Asd...
Ma perchè devi farlo mille volte al secondo.
Puoi anche seguire il ciclo mille volte ma controllare se esiste il file ogni 10 secondi.

Forse ti sarà utile questa libreria:

package Cycle; # Fornisce alcune funzione per l'esecuzione di sub a tempi determinati.
use strict;
use Time::HiRes;
# Ad esempio se vogliamo eseguire una funzione solo 3 secondo dopo l'ultima volta che è stata eseguita
# allora si userà questa funzione.

# Le funzioni che fanno uso di questa libreria non contano molto
# sul tempo ma la sfruttano solo per limitare il carico della CPU.
sub new {
my ($package, $cycle)=@_;
my $timer=bless({},$package);
$timer->{last}=0;
$timer->{every}=$cycle;
return $timer;
}
sub check {
my $timer=shift;
return undef if Time::HiRes::time()-$timer->{'last'}<$timer->{every};
$timer->{'last'}=Time::HiRes::time();
return 1;
}

1;
In pratica crei un nuovo oggetto:
my $oggetto=Cycle->new(0.1); # L'argomento sono i secondi.
# Il tempo in secondi è quello che ti serve per specificare ogni quanto fare il controllo
if ($oggetto->check) {
print "posso fare ora il controllo\n";
[controllo]
}

Questa libreria l'ho scritta io e mi serve appunto per eseguire del codice all'interno di alcuni blocchi, in modo limitato.
Anche io infatti avevo cicli che si ripetono molto, ma alcuni controlli li limiti a 3 4 volte al secondo, oppure una volta ogni 20 secondi.

Nel tuo caso userei questo metodo controllando se il file esiste, una volta ogni 3-4 secondi.

E' brutto?