ファイルをコピーする時って

open(IN,"Src.txt"); #コピー元ファイル Src.txt をオープン
while(<IN>){    # 一行毎の読み込みループで変数$Bufに読み込む
 $Buf .= $_;}
close(IN);     #ハンドル IN が不要になったので閉じる

◇デソースに書き出す
open(OUT,"> Dst.txt"); #コピー先ファイル Dst.txt をオープン
print OUT,$Buf;     #ソースの内容($Buf)を書き出す
close(OUT);       

のように一行ずつ読み込んでく場合と
@line=<IN>;
みたいにいっきに配列に入れてしまうのはどちらが処理としてはいいのでしょうか?