Как я могу спать в течение миллисекунды в Perl?
Как я могу спать меньше секунды в Perl?
6 ответов:
со страницы Perldoc на сон:
для задержек более тонкой детализации, чем одна секунда, Time:: HiRes модуль (от CPAN, и начиная с Perl 5.8 часть стандартного распределения) обеспечивает usleep ().
на самом деле, он обеспечивает
usleep()
(который спит в микросекундах) иnanosleep()
(который спит в наносекундах). Вы можетеusleep()
, что должно позволить вам иметь дело с более легкими числами. 1 миллисекундный сон (с использованием каждый):use strict; use warnings; use Time::HiRes qw(usleep nanosleep); # 1 millisecond == 1000 microseconds usleep(1000); # 1 microsecond == 1000 nanoseconds nanosleep(1000000);
если вы не хотите (или не можете) загрузить модуль для этого, вы также можете использовать встроенный
select()
:# Sleep for 250 milliseconds select(undef, undef, undef, 0.25);
Time:: HiRes:
use Time::HiRes; Time::HiRes::sleep(0.1); #.1 seconds Time::HiRes::usleep(1); # 1 microsecond.
с perlfaq8:
как я могу спать () или будильник () в течение секунды?
Если вы хотите более тонкую детализацию, чем 1 секунда, которую обеспечивает функция sleep (), самый простой способ-использовать функцию select (), как описано в select in perlfunc. Попробуйте модули Time::HiRes и BSD::Itimer (доступны в CPAN и начиная с Perl 5.8 Time::HiRes является частью стандартного дистрибутива).
использовать Time:: HiRes.
быстрый поиск в интернете на "Perl High resolution timers" дал ссылку на Time:: HiRes. Может быть, это то, что вы хотите.