|
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.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |