See the current Perl documentation for sleep.
Here is our local, out-dated (pre-5.6) version:
sleep - block for some number of seconds
Causes the script to sleep for EXPR seconds, or forever if no EXPR. May be interrupted if the process receives a signal such as
SIGALRM. Returns the number of seconds actually slept. You probably cannot mix alarm() and sleep() calls, because sleep() is often implemented using alarm().
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.
See also the