CARVIEW |
- #sleep EXPR
- #sleep
-
Causes the script to sleep for (integer) EXPR seconds, or forever if no argument is given. Returns the integer number of seconds actually slept.
EXPR should be a positive integer. If called with a negative integer,
sleep
does not sleep but instead emits a warning, sets$!
(errno
), and returns zero.If called with a non-integer, the fractional part is ignored.
sleep 0
is permitted, but a function call to the underlying platform implementation still occurs, with any side effects that may have.sleep 0
is therefore not exactly identical to not sleeping at all.May be interrupted if the process receives a signal such as
SIGALRM
.eval { local $SIG{ALRM} = sub { die "Alarm!\n" }; sleep; }; die $@ unless $@ eq "Alarm!\n";
You probably cannot mix
alarm
andsleep
calls, becausesleep
is often implemented usingalarm
.On some older systems, it may sleep up to a full second less than what you requested, depending on how it counts seconds. Most modern systems always sleep the full amount. They may appear to sleep longer than that, however, because your process might not be scheduled right away in a busy multitasking system.
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
. You may also use Perl's four-argument version ofselect
leaving the first three arguments undefined, or you might be able to use thesyscall
interface to access setitimer(2) if your system supports it. See perlfaq8 for details.
Perldoc Browser is maintained by Dan Book (DBOOK). Please contact him via the GitHub issue tracker or email regarding any issues with the site itself, search, or rendering of documentation.
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via the Perl issue tracker, the mailing list, or IRC to report any issues with the contents or format of the documentation.