>>2
(1)ロックしないの?
(2)$nって何?
  runmode用の変数?
(3)ファイルハンドルは大文字に統一すれ

謎の $nをつかった、$cnf_file.tmpをつかって
ロックというか、トランザクションをとってる
つもりなんだったら、たぶん、完全に間違い。
($nの設定時に排他処理してたらすまん)

というわけで、たぶん、あってません。