- ベストアンサー
ファイルの処理について
数百行のテキストファイルを5行づつ取り込んで処理をしたいのですが。。 どうすればいいのでしょうか? 一行づつは可能なんですが。。。 While(<FILEHANDL>){ 処理 } ヘルプ~。。。。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1 です。 最後が5行未満になった場合のことを忘れていました。 訂正します。 my @five_lines; while (<FILEHANDLE>) { push @five_lines, $_; unless (eof(FILEHANDLE)) { next if $. % 5; } # ここで @five_lines を処理する @five_lines = (); }
その他の回答 (2)
- kumoz
- ベストアンサー率64% (120/185)
回答No.3
% は、剰余演算子です。次の式は、 next if $. % 5; $. (現在の行番号) を 5 で割った余りを求めているものです。 余りが1から 4 までは真になりますので、次の行を読み込みます。 $. が 5 で割れる数字になると余りが 0 になるので偽になり、@five_lines に5行読み込んだことになるので、次の処理に移ります。
質問者
お礼
ありがとうございます。 助かりました。
- kumoz
- ベストアンサー率64% (120/185)
回答No.1
特殊変数の $. を利用する方法があります。 my @five_lines; while (<FILEHANDLE) { push @five_lines, $_; next if $. % 5; # ここで @five_lines を処理する @five_lines = (); }
補足
回答ありがとうございます。 すみません。%5の意味がわからないのですが。。