Perl ファイルの行数をカウント | でばぐめ -IT技術メモ-

でばぐめ -IT技術メモ-

主にハードウェア/ソフトウェアのプログラミングに関するブログです。

perlfaq5に「あるファイルの行数を数えるには? 」という問いに対し、

下の記述が載っています。


$lines = 0;
open(FILE, $filename) or die "Can't open $filename: $!";
while (sysread FILE, $buffer, 4096) {
  $lines += ($buffer =~ tr/\n//);
}

ファイルを読み込んで、改行の数を数えることで行数を取得しています。



配列の要素数を利用すると下のように書けます。


open(FILE, $filename) or die "Can't open $filename: $!";
@buffers  = <FILE>; 
$lines = @buffers;

こちらの方がシンプルな気はします。


perlfaq5での記述は、無駄にメモリを使わないのが利点 ということですかね?