我如何在Perl中睡一毫秒?
在Perl中如何睡眠时间短于一秒?
从睡眠 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);
如果你不想(或不能)加载一个模块来做到这一点,你也可以使用内build的select()
函数:
# Sleep for 250 milliseconds select(undef, undef, undef, 0.25);
时间::高分辨率:
use Time::HiRes; Time::HiRes::sleep(0.1); #.1 seconds Time::HiRes::usleep(1); # 1 microsecond.
来自perlfaq8 :
我怎么能睡一会儿()或闹钟()?
如果您希望比sleep()函数提供的1秒更精细的粒度,最简单的方法是使用select()函数,如perlfunc中的select所述。 尝试Time :: HiRes和BSD :: Itimer模块(可从CPAN获得,从Perl 5.8开始,Time :: HiRes是标准发行版的一部分)。
使用Time :: HiRes 。
“perl高分辨率定时器”的一个快速search引用了Time :: HiRes 。 也许这就是你想要的。
system "sleep 0.1";
做的伎俩。