whileについて質問。

ファイル($log)の中身を1行ずつチェックしながら処理する場合、
open ( FH, $log );
と開いたとして、

@array = <FH>;
$limiti = @array;
while ( $limiti > 0 ) {
 処理;
 $limiti --;
}
とするのと
while(<FH>){
 処理;
}
とするのは同じこと?
どっちでもできるなら後者の方が無駄な変数無い分よろしい?