perl sleep

¿Cómo puedo dormir durante un milisegundo en Perl?



sleep (6)

Desde perlfaq8 :

¿Cómo puedo dormir () o alarma () por menos de un segundo?

Si desea una granularidad más fina que el segundo que proporciona la función sleep (), la manera más fácil es usar la función select () como se documenta en select in perlfunc. Pruebe los módulos Time :: HiRes y BSD :: Itimer (disponibles en CPAN, y a partir de Perl 5.8 Time :: HiRes forma parte de la distribución estándar).

¿Cómo puedo dormir por menos de un segundo en Perl?


Desde la página Perldoc en sleep :

Para retrasos de granularidad más fina que un segundo, el módulo Time::HiRes (de CPAN, y partiendo de Perl 5.8 parte de la distribución estándar) proporciona usleep ().

En realidad, proporciona usleep() (que duerme en microsegundos) y nanosleep() (que duerme en nanosegundos). Es posible que desee usleep() , lo que debería permitirle lidiar con números más fáciles. 1 milisegundo de sueño (usando cada uno):

use strict; use warnings; use Time::HiRes qw(usleep nanosleep); # 1 millisecond == 1000 microseconds usleep(1000); # 1 microsecond == 1000 nanoseconds nanosleep(1000000);

Si no desea (o no puede) cargar un módulo para hacer esto, también puede usar la función incorporada de select() :

# Sleep for 250 milliseconds select(undef, undef, undef, 0.25);


Tiempo :: HiRes:

use Time::HiRes; Time::HiRes::sleep(0.1); #.1 seconds Time::HiRes::usleep(1); # 1 microsecond.

Time::HiRes


Una búsqueda rápida en Google de "temporizadores de alta resolución Perl" dio una referencia a Time::HiRes . Tal vez eso es lo que quieres.



system "sleep 0.1";

Hace el truco.