スリープ処理

Perlの組み込み sleep 関数は,スリープ時間を浮動小数点で指定した場合であっても,整数単位の秒数でのみ,プログラムを一時停止するらしい。

sleep 1.5; # sleep(int(1.5))と同じで,1秒間スリープする
sleep 0.5; # sleep(int(0.5))と同じで,0秒間スリープする!

1秒未満のスリープを実現するには,Perl5.8以降で標準モジュールとなっている Time::HiRes モジュールを利用すればよいらしい。

use Time::HiRes qw( sleep usleep );
sleep  0.5;     # 0.5秒間スリープする
usleep 500_001; # 0.500001秒間スリープする (ミリ秒単位で指定できる)


See Also