我如何在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. 

http://perldoc.perl.org/Time/HiRes.html

来自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"; 

做的伎俩。