在 Perl 中如何睡眠少于一秒钟?
时间:
use Time::HiRes; Time::HiRes::sleep(0.1); #.1 seconds Time::HiRes::usleep(1); # 1 microsecond.
Http://perldoc.perl.org/time/hires.html
使用 时间: : 雇员。
在“ perl 高分辨率计时器”上快速搜索了一下,发现了一个关于 时间: : 雇员的参考资料。
来自 睡觉的 Perldoc 页面:
对于粒度小于一秒的延迟,时间: : 雇员模块(来自 CPAN,从标准发行版的 Perl 5.8部分开始)提供 ussleep ()。
实际上,它提供了 usleep()(以微秒为单位睡眠)和 nanosleep()(以纳秒为单位睡眠)。您可能需要 usleep(),它应该让您处理更简单的数字。1毫秒睡眠(每次使用) :
usleep()
nanosleep()
use strict; use warnings; use Time::HiRes qw(usleep nanosleep); # 1 millisecond == 1000 microseconds usleep(1000); # 1 microsecond == 1000 nanoseconds nanosleep(1000000);
如果你不想(或者不能)加载一个模块来做这件事,你也可以使用内置的 select()函数:
select()
# Sleep for 250 milliseconds select(undef, undef, undef, 0.25);
来自 Perlfaq8:
我怎样才能在一秒钟之内睡着或闹钟响起呢?
如果希望获得比 sleep ()函数提供的1秒更细的粒度,最简单的方法是使用 perlfunc 中 select 中记录的 select ()函数。尝试 Time: : HiRes 和 BSD: : Itimer 模块(可从 CPAN 获得,从 Perl 5.8开始 Time: : HiRes 是标准发行版的一部分)。
system "sleep 0.1";
有用。