Eine Liste von Listen II

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

sortaddr5.pl
#!/usr/local/bin/perl

use strict;
use warnings;
use IO::File;

my $addressbook = "addressbook";
my $book = new IO::File $addressbook
   or die "Cannot open $addressbook: $!\n";
my @addresses;
while (<$book>) {
   chomp;
   my ($fullname, $address) = split /:/;
   my ($firstname, $lastname) = $fullname =~ m{(.*)\s(.*)};
   push(@addresses, [$firstname, $lastname, $address]);
}
$book->close;

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

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