How do I sleep for a millisecond in Perl?
perl, sleep
Solution
From the Perldoc page on sleep:
For delays of finer granularity than one second, the Time::HiRes module (from CPAN, and starting from Perl 5.8 part of the standard distribution) provides usleep().
Actually, it provides `usleep()` (which sleeps in microseconds) and `nanosleep()` (which sleeps in nanoseconds). You may want `usleep()`, which should let you deal with easier numbers. 1 millisecond sleep (using each):
use strict;
use warnings;
use Time::HiRes qw(usleep nanosleep);
# 1 millisecond == 1000 microseconds
usleep(1000);
# 1 microsecond == 1000 nanoseconds
nanosleep(1000000);
If you don't want to (or can't) load a module to do this, you may also be able to use the built-in `select()` function:
# Sleep for 250 milliseconds
select(undef, undef, undef, 0.25);
Problem
How do I sleep for shorter than a second in Perl?