>>347
while と for では $_ のスコープに関する扱いに違いがある点に注意。
また逐行処理前提で書かれたループ内のコードが適切でない可能性があるよ。

読んでないからどう影響するかはわからんけど応援してみる。