Das Durchlaufen assoziativer Arrays

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

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

$addressbook = "addressbook";
open(BOOK, "<$addressbook") ||
   die "Cannot open $addressbook\n";
while (<BOOK>) {
   chomp;
   ($name, $address) = split /:/;
   $address{$name} = $address;
}
close(BOOK);

foreach $name (sort keys %address) {
   printf "%-20s | %s\n", $name, $address{$name};
}

*Mit dem Operator keys werden alle Schlüssel eines assoziativen Arrays (in undefinierter Reihenfolge) als Liste extrahiert. Alternativ gibt es auch values, das alle Werte zurückliefert.
 
*Der Operator sort sortiert eine Liste und liefert sie wieder als neue(!) Liste zurück. Das Sortierkriterium läßt sich beliebig bestimmen -- dazu später mehr.
 
*Wenn die Reihenfolge keine Rolle spielt, ist each effizienter zum Durchlaufen: while (($name, $address) = each %address) { ... }
 

 [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