5部 関数リファレンス

sleep

sleep EXPR



引数で指定した秒数だけ、スクリプトの実行をスリープさせます。引数を省略すると、永久にスリープします。スリープ中のプロセスは、SIGALRMを送ることで実行を再開することができます。返却値はスリープした秒数です。

プロセスについては用語集「プロセス」を参照してください。

sleepの使い方

# よくあるファイルロック処理
$retry = 3;
sub open_lock{
	my $filepath = shift; # ファイルパスを受け取る

	while ( -f $filepath ){
		if ( --$retry <= 0 ){
		    unlink( $filepath ); # ファイルを削除
		    return;
		}
		sleep(2);
	}
	unless ( open( FH, ">$filepath" ) ){
		return;
	}
	close( FH );
}

関連記事