_roro: Programmierstil

Beitrag lesen

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&amp;id=1'>Insert</a> <br>  
  <a href='$ENV{SCRIPT_NAME}?update=1984&amp;id=2'>Update</a>  
 );  
 return;  
}  
###########################################################################  
sub cgiError{  
 my $errMesg = shift;  
 print "Content-type: text/html\n\n";  
 print "$errMesg";  
 exit;  
}