#!/usr/bin/perl use strict; use warnings; sub tailFile { my ($file, $lines) = @_; open F, $file or die $!; my @lines; $#lines=($lines-1); my $i; while () { $lines[$i++] = $_; $i = 0 if $i == $lines; } close F; # this works but not sure if this is safe using pre-dec # and var on same line see perlmonks nodes passim return @lines[$i--..$#lines, 0..$i] } print (tailFile ("/etc/passwd", 10));