|
#!/usr/local/bin/perl use strict; use warnings; my %cmd = ( sum => sub { my $sum = 0; foreach my $val (@_) { $sum += $val }; print $sum, "\n"; }, quit => sub { exit 0 }, ); while (print(": "), defined(my $line = <STDIN>)) { my ($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.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |