#!/usr/bin/perl use strict; use warnings; use Benchmark qw(timethese); my $filename = '/usr/share/dict/words'; timethese(100, { 'read_block' => sub { open(FILE, $filename) or die "Can't open file: $!"; my $lines = 0; while (read FILE, my $buffer, 4096) { $lines += ($buffer =~ tr/\n//); } close FILE; }, 'read_line' => sub { open(FILE, $filename) or die "Can't open file: $!"; while () {}; my $lines = $.; close FILE; } });