もう少し詳しく言うと、子プロセスのtailが終了してくれず、
straceでみるとwait4で止まったままです。
下記のスクリプトは問題箇所だけを抽出しましたが、print文は
実行されません。
----------------------------------
open FH, "tail -f /var/log/messages |";
#ログの処理
sleep 1;
close FH;
print "end\n";
----------------------------------