perlfaq nodetype
faq_monk
<P>
One fairly efficient way is to count newlines in the file. The following
program uses a feature of tr///, as documented in [perlman:perlop|the perlop manpage]. If your text file doesn't end with a newline, then it's not really a
proper text file, so this may report one fewer line than you expect.
<P>
<PRE> $lines = 0;
open(FILE, $filename) or die "Can't open `$filename': $!";
while (sysread FILE, $buffer, 4096) {
$lines += ($buffer =~ tr/\n//);
}
close FILE;
</PRE>
<P>
This assumes no funny games with newline translations.
<P>