素直なスクリプトだね。
一つだけ。
$log_all = <READ>;
では最初の行しか入らないよ。
@log_all = <READ>; と配列に入れるか。
undef $/; して置く必要がある。

あとは、
flock 解除する必要は無い、closeだけでいい。
読み込みモードで開いたんなら flock(READ, 1) で十分。
って感じかな。
前者については逆に解除するとまずい理由があるんだけどパス。

ただ、open2回は効率が悪い。
+< で開いてopen一回で済ませる方法も考えてみるといいかも。