Thread Problem mit HASH ref (48 answers)
Opened by bianca at 2010-05-02 13:09

pq
 2010-05-09 16:32
#136938 #136938
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
dispatch-tabelle kam hier schon häufig vor, aber ich wiederhole gern nochmal:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
my %dispatch = (
    blubb => \&sub1,
    foo   => \&sub2,
    bar   => \&sub3,
);
sub sub1 { ... }
...

my $sub = "foo";
$dispatch{ $sub }->($parameter); # ruft sub2($parameter) auf


nur explizit erlaubte subnamen können hier aufgerufen werden.

zu can() siehe:
perldoc UNIVERSAL

Code (perl): (dl )
1
2
3
4
my $coderef = Modul::Name->can("subname");
my $coderef = main->can("subname");

$coderef->($parameter);

argument kann auch ein voller paketname mit sub sein, deshalb sollte das argument nicht von ausserhalb blind entgegengenomen werden.

edit: beispiel zu can() ergänzt
Last edited: 2010-05-09 16:46:56 +0200 (CEST)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Problem mit HASH ref