'OP\'s' => sub { my $lineno = 100; open( FILE, "$f" ) or die "Can't find $f\n"; my @lines = ; my $num = @lines; for ( ; $lineno > 0 ; $lineno-- ) { my @tail = @lines[ $num - $lineno ]; } close(FILE); }, #### '`tail -100`' => sub { my @lines = split( /\n/, `tail -100 $f` ); }, #### my @lines = `tail -100 $f`;