Speicherallokation mit my

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

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

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

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

*my erzeugt nicht lokale Variablen im herkömmlichen Sinn, sondern legt dynamisch Speicher an (analog zu malloc).
 
*In der while-Schleife wird somit @address jedesmal frisch angelegt.
 
*Der \-Operator ist der Adreß-Operator analog zu & in C.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000