Parsieren einfacher Textdateien

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

mountpoints.pl
my $infile = "/etc/vfstab";
my $in = new IO::File $infile
   or die "unable to open $infile: $!\n";
my @mountpoints = ();
while (<$in>) {
   next if /^#/;     # Auskommentierte ...
   next if /^\s*$/;  # und leere Zeilen ueberspringen
   chomp;
   my $mountpoint = (split /\s+/)[2];
   next unless $mountpoint =~ m{^/};
   push(@mountpoints, $mountpoint);
}
$in->close;

print join("\n", sort @mountpoints), "\n";

*Mit next kann (analog zu continue in C) die nächste Iteration einer Schleife initiiert werden. (Analog gibt es last, das break in C entspricht).
 
*unless entspricht if !.
 
*\s in regulären Ausdrücken steht für Leerzeichen, Tabs, Zeilentrenner usw.
 
*Auch ein Ausdruck, der eine Liste liefert, kann direkt indiziert werden, wenn er eingeklammert wird.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003