Anonyme Funktionen

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

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

%cmd = (
   'sum' => sub {
      my $sum = 0; foreach my $val (@_) { $sum += $val };
      print $sum, "\n";
   },
   'quit' => sub { exit 0 },
);
while (print(": "), defined($line = <STDIN>)) {
   ($cmdname, @fields) = split /\s+/, $line;
   next unless defined $cmdname;
   if (defined $cmd{$cmdname}) {
      &{$cmd{$cmdname}}(@fields);
   } else {
      print "Unknown command!\n";
   }
}

*sub { ... } liefert einen Zeiger auf eine anonyme (also unbenannte) Funktion.
 
*Das erlaubt eine sehr elegante Einbettung von Funktionen in Datenstrukturen.
 

 [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