皆さんレスありがとうございます。
>>956さん
試してみたんですが、LOCK is BUSYばかり出て書き込めませんでした。

>>955さん

とりあえず以下のように記述してみました。
open(IN,"$logfile") || &error("ログファイルが開けません");
flock( IN, 1 ); #ファイルを読み出しロック
@lines = <IN>;
flock( IN, 8 ); #ロック解除
close(IN);

open(OUT,">$logfile") || &error("ログファイルに書きこめません");
flock( OUT, 2 ); #ファイルを書き込みロック
print OUT @lines;
flock( OUT, 8 ); #ロック解除
close(OUT);

これで書き込めたんですが、あっているでしょうか? ファイルロックができているかチェックする方法とかありませんか?