Eine Liste von Listen II

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

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

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

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

*Wenn nicht ein einzelnes Element hinter dem Zeiger selektiert werden soll, sondern die gesamte Liste, dann geht dies mit @{$address}.
 
*Alternativ wäre hier auch @$address akzeptiert worden -- dennoch ist die andere Variante lesbarer und in komplizierteren Fällen ohne Mehrdeutigkeiten.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2000 Ingo Melzer, in HTML konvertiert am 10.11.2000