Perlでファイルの排他制御を行うにあたり、実運用に耐えるコーディングについて考えます。 今回はflockを用いた排他制御です。 flockは完璧ではない flockによるファイルの排他制御は「ファイルが壊れないようにする」処理ではありません。 「ファイルを壊れにくくする」処理です。 本気で壊れたらまずいファイルについては、排他制御を必要としない運用方式や、データベース等の導入を検討すべきです。 マルチスプロセス環境でのflockについて PHPではマルチプロセス環境でのflockに信頼性がありませんが、Perlの場合は気にしなくても良いようです。 ただ、flockがスレッドレベルロック+プロセスレベルロックなのかどうは分かりません。 懸念する点 open関数 open関数は正しく使わないと問題が生じます。 以下の一文は、openを行った際にファイルサイズをゼロ(ファイルを空っぽ)にしてし