ファイルの一行目を読み飛ばすには??

[上に] [前に] [次に]
1999/06/04(金) 03:59:38
#!/usr/bin/perl

$subjectfile = './bbs.dat';
open(DATA,$subjectfile);
while (<DATA>){
chop;
($date,$fname,$email,$value,$subject,$res,$cnt) = split(/,/);
print "$subject\n";
last if ++$i>=20;}
close(DATA);

というスクリプトなのですが、これを改造してログの一行目を
読まないようにしたいです。
@lines = <DATA>;
とやってログを全部読み込んでから
shift(@lines);
とすればいけそうなのですが、これだとメモリ食っちゃうとの事なので
なにか良い方法があれば教えてください。

B-Cus 1999/06/04(金) 04:29:28
案1:
 open(IN,"hoge");
 <IN>;
 while (<IN>){

案2: 案1の書き方が気持ち悪ければこちらをどうぞ。ソース読む人にとっても、
   $dummyに代入というのはわかりやすいかも。
 open(IN,"hoge");
 $dummy = <IN>;
 while (<IN>){

案3: フラグを使う。既にカウンタとして $iを使ってるから、
   それと統合するのがいいかもね。
 open(IN,"hoge");
 $flg = 1;
 while (<IN>){
  next unless $i++;

B-Cus 1999/06/04(金) 04:33:18
ごめん。案3は
> $flg = 1;
$i=0 ね。

1999/06/04(金) 12:05:01
[[解決]]
ありがとうございます!
案1をいただきました!

[上に] [前に] [次に]