sub get_first_line { my ($filename) = @_; open my $fh, '<', $filename or die "Cannot open '$filename' for reading: $!\n"; return scalar <$fh>; } use File::ReadBackwards; sub get_last_line { my ($filename) = @_; my $fh = File::ReadBackwards->new( $filename ) or die "Cannot open '$filename' for reading backwards: $!\n"; return $fh->readline; }