Was gibt es noch für Möglichkeiten?
Erklär doch mal wofür die Funktionsparameter zentral gehalten werden sollen. Und wo kommen die her? Aus dem HTTP-Request?
Wenns ein CGI ist ja.
Und was willst Du eigentlich genau wie kontrollieren mit Deinen Kontrollstrukturen?
1. ist der Parameter erlaubt
2. was hat er für einen Value
3. was mache ich damit
z.B. mit der Kontrollstruktur bisher
if(param()){
if(param('insert')){
# andere funktionen aufrufen
# statements
# andere funktionen aufrufen
}
elsif(param('update')){
# statements
# andere funktionen aufrufen
# andere funktionen aufrufen
}
else{
cgiError('unbekannter Parameter');
}
else{
# script wurde ohne parameter aufgerufen
}
Meine neurlichen Überlegungen gehen hin die Kotrollstruktur zu vereinfachen (siehe POST weiter oben). Und, die erlaubten (Schlüsselparameter) auf einen Blick zu haben, so also (hier mal args genannt):
my %args = (
'update' => &update,
'insert' => &insert,
);
Das vereinfacht die Kontrollstruktur dahingehend, dass nur noch ein einziges Statement für den Funktionsaufruf erforderlich ist:
if(exists $args{$ARGV[0]}){
$args{$ARGV[0]}();
}
else{
print "unbekannter Parameter\n";
}
Führt aber dazu, dass weitere Funktionen aus den Unterfunktionen heraus aufgerufen werden müssen, was ich bisher stets vermieden habe. Hmm, wie macht Ihr denn das so?
roro