1: open(IN, $file); # ファイルを開く 2: $count = <IN>; # カウンターを読み出す 3: close(IN); # ファイルを閉じる 4: $count++; # カウンターをひとつ増やす 5: open(OUT, "> $file"); # ファイルを開く 6: print OUT "$count\n"; # ファイルにカウンタを書き込む 7: close(OUT); # ファイルを閉じる 8: print "$count\n"; ところが、この実装には問題があります。Aさんが5行目を実行し終えて6行目を実行するまでの間の僅かのタイミングに、Bさんが1行目と2行目を行うと、Bさんは空のファイルを読んでしまうことになります。文字 "" に1を加算すると値は1。これをBさんがファイルに書き込むと、カウンターファイルの破壊(カウンター値のリセット)が発生し