Как спать в Perl на секунду меньше?
Как спать за миллисекунду в Perl?
Ответ 1
На странице Perldoc на sleep:
Для задержек более тонкой детализации, чем одна секунда, модуль 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);
Ответ 2
Время:: HiRes:
use Time::HiRes;
Time::HiRes::sleep(0.1); #.1 seconds
Time::HiRes::usleep(1); # 1 microsecond.
Ответ 3
От perlfaq8:
Как я могу спать() или будильник() в течение секунды?
Если вы хотите более тонкую детализацию, чем за 1 секунду, что обеспечивает функция sleep(), самый простой способ - использовать функцию select(), как описано в select perlfunc. Попробуйте модули Time:: HiRes и BSD:: Itimer (доступные из CPAN и начиная с Perl 5.8 Time:: HiRes является частью стандартного дистрибутива).
Ответ 4
Используйте Время:: HiRes.
Ответ 5
Быстрый поиск по "perl высоким таймерам" дал ссылку на Time:: HiRes. Возможно, это то, что вы хотите.
Ответ 6
system "sleep 0.1";
делает трюк.