ich moechte in Abhaengigkeit des Wertes eines Skalars eine Funktion ausfuehren lassen.
eval $scalar; funktioniert bei mir..
ist abe rnicht nötig.
Wenn du die entsprechende Funktion nur so (also "indirekt") aufrufst, empfehle ich dir aber was anderes:
my %subs;
$subs{'meine_sub'} = sub {
print "test";
}; # Semikolon nicht vergessen
Das ist aber umständlicher als die Funktion ganz normal zu definieren und der Kontrollstruktur nur die Namen der Funktionen mitzugeben.
Ich benutze z.b. sowas:
ausgelagert in einer Datei Action.pm
my @action = (
{
name => 'bla',
function => 'func',
modul => 'datei'
},
{
name => 'bla',
function => 'func',
modul => 'datei'
}
);
und der aufruf mit dem Parameter Action:
my $action = $action[param('action')];
require $action->{modul} if(exists $action->{modul} && -e $action->{modul}) ;
&{$action->{function}}() if(exists $action->{function} && defined $action->{function}) ;
Dadurch kann ich alles in einer Datei kontrollieren (es sind noch mehr informationen in @action drin, z.b. wie das Menü dargestellt wird)
Struppi.