ファイルの排他制御flock関数を使用すれば、ファイルの排他制御を行うことができます。今回は、flock関数を実際に使って順番を守ってファイルに読み書きを行います。(一般的には、排他処理と呼びます。)以下は、実際に順番を守って読み書きしているとことを実感するサンプルです。いう名前で保存してください。O_CREATでファイルがなければ作成する。closeの際にファイルロックは解除される。$cnt\n";上記のスクリプトを、ランダムな時間間隔で繰り返すスクリプトです。いう名前で保存してください。上記のスクリプトを繰り返し呼び出す。$random;}(参考)FindBin、Time::HiReswhile文を使って、繰り返しスクリプトを呼び出しています。コマンドプロンプトを3つくらい立ち上げて、write_loop_20080814.plをすべてのプロンプトで実行してください。data_20080814.txtを読み込んで、カウントアップして書き戻すということを3並列で行います。順番が守られていなければ、書き込み内容に重複が発生するか、あるいはファイルが破損します。順番が守られていれば正しくカウントアップされるはずです。3つとも強制終了して、カウントが重複していないことを確認してください。カウントが重複していなければ、順番を守って読み書きしていることがわかります。(一部のOS(Winows98など)ではflockは機能しませんがたいていのOSで機能するでしょう。ファイルロック用の定数を読み込むFcntlモジュールを使うとflockで使用するファイルロック用の定数を利用することができるようになります。