sleep EXPR
sleep

讓腳本休眠 (整數) EXPR 秒,如果沒有給定引數,則永遠休眠。傳回實際休眠的整數秒數。

EXPR 應該是一個正整數。如果呼叫時帶有負整數,sleep 不會休眠,而是發出警告,設定 $! (errno),並傳回零。

如果呼叫時帶有非整數,小數部分會被忽略。

允許 sleep 0,但仍會呼叫底層平台實作的函式,並產生任何可能有的副作用。因此,sleep 0 並不等同於完全不休眠。

如果程序收到訊號,例如 SIGALRM,可能會中斷。

eval {
    local $SIG{ALRM} = sub { die "Alarm!\n" };
    sleep;
};
die $@ unless $@ eq "Alarm!\n";

您可能無法混合 alarmsleep 呼叫,因為 sleep 通常使用 alarm 實作。

在某些較舊的系統上,它可能會比您要求的少休眠整整一秒,具體取決於它如何計算秒數。大多數現代系統總是休眠完整的時間。但是,它們看起來可能會休眠更長的時間,因為在繁忙的多工處理系統中,您的程序可能不會立即被排程。

對於比一秒更精細的延遲,Time::HiRes 模組(來自 CPAN,從 Perl 5.8 開始成為標準發行的一部分)提供 usleep。您也可以使用 Perl 的 select 四個引數版本,讓前三個引數未定義,或者您可能可以使用 syscall 介面存取 setitimer(2)(如果您的系統支援)。請參閱 perlfaq8 以取得詳細資料。

另請參閱 POSIX 模組的 pause 函式。