Moin Moin!
vielen Dank für Dein Feedback!
Wer mir was von unlesbarem Perl-Code vorjammert, den verweise ich seit neuestem auf MUMPS (die Computer-Krankheit,
Echt krank, so ein Mumpitz ;-)
Hier mal ein "schönes" (leserliches) Perl, wo ich gerade dran bin, die Kontrollstruktur in einem CGI:
my $u = PicoBello->new;
my $out = Out->new('192.168.0.0/16', 17); # Vorbelegung mit Beispiel
if($u->param){
$out = Out->new($u->param('cidr'), $u->param('newmask')); # Benutzereingabe
if($u->param('calc')){
# CGI Response
print $u->header, $u->start_html, $u->menu, front(), $u->end_html;
}
elsif($u->param('x_calc')){
# Ajax Response erzeugen
# wird morgen zwischen Zähneputzen und Pinkeln fertig
}
else{
# unbekannte Parameter
print $u->redirect($ENV{SCRIPT_NAME});
}
}
else{
print $u->header, $u->start_html, $u->menu, front(), $u->end_html;
}
und ein Blick in das Objekt $out:
bless({
1 => {
Broadcastadresse => "192.168.255.255",
HEADLINE => "Basisnetz 192.168.0.0/16",
Hosts => 65_534,
MASKLEN => 16,
Netzadresse => "192.168.0.0",
Netzmaske => "255.255.0.0",
Teilbarkeit => "Ja",
},
2 => {
Broadcastadresse => "192.168.127.255",
HEADLINE => "Erstes Subnetz 192.168.0.0/17",
Hosts => 32_766,
MASKLEN => 17,
Netzadresse => "192.168.0.0",
Netzmaske => "255.255.128.0",
Teilbarkeit => "Ja",
},
3 => {
Broadcastadresse => "192.168.255.255",
HEADLINE => "Letztes Subnetz 192.168.128.0/17",
Hosts => 32_766,
MASKLEN => 17,
Netzadresse => "192.168.128.0",
Netzmaske => "255.255.128.0",
Teilbarkeit => "Ja",
},
NANZ => 2,
NM => 17,
}, "Out")
$out wird aus der Benutzereingabe zusammengebaut, da ist alles drin, was für eine CGI-Response oder eine Ajax-Response gebraucht wird. HTML wird über $u->PicoBello erzeugt und die Funktion front() bringt das Forumular sowie die Netztabellen in den Browser. Für eine Ajax-Response wird $out einfach nur serialisiert (nach meiner "Art Hottentott" *G*).
Isset net schie? Ich mach jetzt Pfeierabend :P
Grüße an Alle,
Hotti
PS: Was mich an Perl nervt, ist das # weils nur in einer Zeile güllt...
Java: Mein Gott, tausende Zeilen try/catch, damit endlich mal was geht.
PHP: das Objekt-Zeugs guck ich mir mal an, versprochen ;-)
c: Ich liebe struct
Perl: Ich empfehle strict, eine Zeile, große Wirkung
Delphi, Pascal: Grüß mir den Nicolaus (Wirth)