use strict; use warnings; use Tie::File; use Fcntl 'O_RDONLY'; my $file = 'screenlog'; unlink $file; tie my @lines, 'Tie::File', "$file.0", mode => O_RDONLY; my $end = (scalar @lines > 200 ? 200 : scalar @lines); # added open(OUT,">",$file) or die("Unable to open $file: $!"); print OUT join "\n", @lines[-$end..-1]; # changed close OUT; untie @lines;