¿Cómo puedo dormir por menos de un segundo en Perl?¿Cómo puedo dormir durante un milisegundo en Perl?
Respuesta
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, se proporciona usleep()
(que duerme en microsegundos) y nanosleep()
(que duerme en nanosegundos). Es posible que desee usleep()
, lo que le permitirá lidiar con números más fáciles. 1 milisegundo sueño (utilizando 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 quiere (o no puede) cargar un módulo para hacer esto, es posible que también será capaz de utilizar el incorporado en select()
función:
# Sleep for 250 milliseconds
select(undef, undef, undef, 0.25);
Advertencia: aunque podría nanosleep (1), muchos sistemas operativos tienen una granularidad mínima; p.ej. Creo que es 1 ms en Windows XP, por lo que aún dormiría allí por 1000000 ns. – Piskvor
La página de Time :: HiRes dice algo así como "si necesita nanosleep(), debería reconsiderar si Perl es o no la mejor herramienta para su trabajo". –
También hay Time :: HiRes :: sleep (0.3) que dormirá durante .3 de segundo. –
Time :: HiRes:
use Time::HiRes;
Time::HiRes::sleep(0.1); #.1 seconds
Time::HiRes::usleep(1); # 1 microsecond.
un pésimo 34 segundos :) – TML
Uso Time::HiRes.
Un rápido google en "perl alta resolución temporizadores" dio una referencia a Time::HiRes. Tal vez eso es lo que quieres.
de perlfaq8:
¿Cómo puedo dormir() o alarma() por menos de un segundo?
Si desea una granularidad más fina que el 1 segundo que proporciona la función sleep(), la forma 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).
system "sleep 0.1";
hace el truco.
- 1. ¿Cómo puedo agregar exactamente 1 milisegundo?
- 2. Dormir un hilo de refuerzo durante algunos nanosegundos
- 3. Cómo evitar dormir en Android
- 4. ¿Cómo puedo deshacer un objeto en Perl?
- 5. ¿Cómo puedo obtener un rastreo en Perl?
- 6. ¿Cómo puedo serializar un cierre en Perl?
- 7. ¿Por qué SQL Server pierde un milisegundo?
- 8. ¿Cómo emulo "dormir" en NodeJS?
- 9. Cómo dormir un hilo de Boost C++
- 10. cómo terminar un hilo de dormir en pthread?
- 11. Intentando dormir bien en Linux
- 12. Dormir en un hilo (Hilos C/POSIX)
- 13. Dormir en JQuery?
- 14. Dormir en un hilo de C# agrupado
- 15. ¿Cómo mostrar un número en la pantalla y dormir durante un segundo con el ensamblado de DOS x86?
- 16. ¿Cómo puedo depurar un script de Perl?
- 17. Cómo dormir o pausar un PThread en c en Linux
- 18. Enhebrado de Python: ¿puedo dormir en dos threading.Event() s simultáneamente?
- 19. Dormir en Fortran
- 20. ¿Cómo puedo convertir el sistema milisegundo a la Fecha en objetivo-c
- 21. Dormir por una duración exacta
- 22. Dormir un hilo por un tiempo indefinido en Linux
- 23. ¿hay alguna manera de dormir() en un procedimiento almacenado?
- 24. ¿Cómo puedo convertir una cadena en un número en Perl?
- 25. ¿Cómo puedo definir constantes en un archivo separado en Perl?
- 26. ¿Cómo puedo convertir un número en texto en Perl?
- 27. ¿Cómo puedo combinar varios hashes en un hash en Perl?
- 28. ¿Cómo puedo recorrer archivos en un directorio en Perl?
- 29. ¿Cómo puedo verificar si un módulo Perl está instalado?
- 30. ¿Cómo puedo embellecer el código de Perl generado por Perl?
Es porque creo que este título es realmente más útil. Déjame intentar argumentar esto. Qué B.D.F. hizo fue duplicar la pregunta en el título que no agrega expresividad. Cuando buscaba la respuesta en la web, en realidad buscaba un sueño de un milisegundo y no un sueño "más corto que un segundo". Digo que esta versión tiene más posibilidades de ser golpeada a través de diferentes búsquedas de Google que la de B.D.F. Por favor corrígeme si estoy equivocado. –