while ( <@new_line> ){

ここが原因。
<> でくくると空白ごとに改行に置換される模様。

つかですね、配列に入ってるなら
print FH @new_line;
でえぇですやん