Erwin: Funktion ausfuehren, deren Namen nur als Skalar bekannt

Beitrag lesen

Hi,

danke Euch allen! - Etwas schade, dass 'eval($in{WhatToDo})' boese ist. - Ich haette gerne darauf verzichtet ein "sub-Array" zu erstellen, aber diese Codierung ist dennoch viel weniger geschwaetzig als z.B.:

if ($in{WhatToDo} eq 'BenutzerQuery') {&BenutzerQuery;}
if ($in{WhatToDo} eq 'BezeichnungenQuery') {&BezeichnungenQuery;}
if ($in{WhatToDo} eq 'BuchungenQuery') {&BuchungenQuery;}

$funktion('BenutzerQuery') = sub{
 # statements
};

$funktion('BezeichnungenQuery') = sub{}; # usw

bei einer Eingabe einfach aufrufen

$function{$in{WhatToDo}}(@parameterliste);

voila - ohne großartige Kontrollstruktur ;-)

AlsoDu musst halt nur die Funktionen in dem hash %funktion definieren, weiter oben...

Ähhm, mach sicherheitshalber doch eine Prüfung:

if(exists $funktion{$in{'WhatToDo'}}){ $funktion{$in{'WhatToDo'}} }
else{ # funktion nicht definiert }

Erwin

--
SELFforum - Das Tor zur Welt!
Theoretiker: Wie kommt das Kupfer in die Leitung?
Praktiker: Wie kommt der Strom in die Leitung?