Sortierkriterien II

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

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

sub byLastName {
   my ($left, $right) = ($a, $b);
   $left =~ s/.*\s//; $right =~ s/.*\s//;
   return $left cmp $right || $a cmp $b;
}

*Bei zwei Personen mit dem gleichen Nachnamen wäre bei dem vorherigen Sortierkriterium die Reihenfolge undefiniert.
 
*Mit dem ||-Operator können mehrere Sortierkriterien kaskadiert werden. Wegen der short circuit evaluation von || wird die Bewertung der Kette beendet, wenn das erste Kettenglied einen Wert ungleich 0 zurückliefert.
 

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