moin Jens,
ich versuche mal, meinen 'neuen' Stil mit Deinem zu verbinden. Das Ergebnis ist verblüffend, swu. Ich find's nicht schlecht und werde das mal überschlafen.
roro
#!/usr/bin/perl
# Rolf Rost 22.03.2007
###########################################################################
# erlaubte Schlüsselparameter zur Steuerung des CGIs
# und die zugeordneten Funktionen
my %allowedParams = (
'insert' => \&insert,
'update' => \&update,
);
###########################################################################
use strict;
use CGI 'param';
# Kontrollstruktur bestimmt Ablauf des CGI
# keine weitere Abfage nach Schlüsselparametern
# Schlüsselparameter stehen auf [0] im Parameter-Array
if(param()){
if(exists $allowedParams{(param())[0]}){
$allowedParams{(param())[0]}();
}
else{
cgiError('Unbekannter Parameter');
}
}
else{
browse();
}
exit;
###########################################################################
sub insert{
my $was = param('insert');
my $id = param('id');
print "Content-type: text/html\n\n";
print "insert $was zu id => $id\n";
return;
}
###########################################################################
sub update{
my $was = param('update');
my $id = param('id');
print "Content-type: text/html\n\n";
print "update $was zu id => $id\n";
return;
}
###########################################################################
sub browse{
print "Content-type: text/html\n\n";
print qq(
<a href='$ENV{SCRIPT_NAME}?insert=0815&id=1'>Insert</a> <br>
<a href='$ENV{SCRIPT_NAME}?update=1984&id=2'>Update</a>
);
return;
}
###########################################################################
sub cgiError{
my $errMesg = shift;
print "Content-type: text/html\n\n";
print "$errMesg";
exit;
}