我怎么在Perl中睡一个毫秒?

时间:2009-05-22 08:38:22

标签: perl sleep

如何在Perl中睡不到一秒?

5 个答案:

答案 0 :(得分:103)

来自sleep上的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);

答案 1 :(得分:34)

时间::高分辨率:

  use Time::HiRes;
  Time::HiRes::sleep(0.1); #.1 seconds
  Time::HiRes::usleep(1); # 1 microsecond.

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

答案 2 :(得分:12)

来自perlfaq8


如何在一秒钟内睡觉()或闹钟()?

如果你想要比sleep()函数提供的1秒更精细的粒度,最简单的方法是使用select in perlfunc中记录的select()函数。尝试Time :: HiRes和BSD :: Itimer模块(可从CPAN获得,从Perl 5.8 Time :: HiRes开始是标准发行版的一部分)。

答案 3 :(得分:6)

使用Time::HiRes

答案 4 :(得分:4)

关于“perl高分辨率计时器”的快速搜索引用了Time::HiRes。也许这就是你想要的。