Das Durchlaufen assoziativer Arrays

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

sortaddr.pl
my $addressbook = "addressbook";
my $book = new IO::File $addressbook
   or die "Cannot open $addressbook: $!\n";
my %address;
while (<$book>) {
   chomp;
   my ($name, $address) = split /:/;
   $address{$name} = $address;
}
$book->close;

foreach my $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 (my ($name, $address) = each %address) { ... }
 

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