Moin,
hier noch eine Variante mit DB_File, damit wird die Datei an ein array gebunden und liegt in ihrer Gesamtgröße nicht im Speicher 'rum:
##################################################################
use DB_File;
use strict;
tie @in, "DB_File", $filename, O_RDWR|O_CREAT, 0644, $DB_RECNO or die $!;
print scalar @in, " Zeilen hat die Datei, untenstehend die letzten 20:\n";
for(-20..-1){ print "$in[$_]\n" }
untie @in;
##################################################################
Gruss, Rolf