anaboe.net

Ausgeben einer Datei von unten nach oben

Zielstellung

Sie haben eine Textdatei, die Sie von unten nach oben abarbeiten, z.B. ausgeben wollen.

Perl - Code

use strict;
use diagnostics;
use Tie::File;

my $file = 'some/file';

tie my @lines, 'Tie::File', $file or die "Couldn't tie $file: $!";
for(my $i = $#lines; $i >= 0; $i--) {
  print $lines[$i], "\n";
}
untie @lines;

Erläuterungen

Benutzen Sie das Modul Tie::File, um größere Textdateien ressourcenschonend zu verarbeiten. Über das Array @lines erhalten Sie nach den für Arrays geltenden Regeln Zugriff auf die einzelnen Zeilen der Datei.

In einer for-Schleife werden die Arrayelemente von unten nach oben ausgegeben. Dazu wird $i die höchste Indexnummer des Arrays zugewiesen (via $#lines) und bis 0 heruntergezählt.

Ein objektorientiertes Interface bietet das CPAN-Modul File::ReadBackwards.