Eine Liste von Listen

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

sortaddr3.pl
#!/usr/local/bin/perl -w

$addressbook = "addressbook";
open(BOOK, "<$addressbook") ||
   die "Cannot open $addressbook\n";
@addresses = ();
while (<BOOK>) {
   chomp;
   ($name, $address) = split /:/;
   ($lastname = $name) =~ s/.*\s//;
   push(@addresses, [$lastname, $name, $address]);
}
close(BOOK);

foreach $address (sort { $a->[0] cmp $b->[0] } @addresses) {
   printf "%-20s | %s\n", $address->[1], $address->[2];
}

*Wenn eine Liste in [...] statt in (...) eingeklammert ist, wird ein Zeiger auf die neu im Speicher angelegte Liste zurückgeliefert.
 
*In der foreach-Schleife ist $address jeweils ein Zeiger auf eine Liste mit drei Elementen (für Nachname, ganzer Name und Adresse). Mit -> wird der Zeiger dereferenziert und ein Zugriff auf eines der Elemente ist möglich.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000