das Modul kann sehr viel und warum es dir lieber ist HTML code und Perl Code zu vermischen ist seltsam.
Ich finde gerade, dass das CGI HTML und Perl vermischt.
Wieso? Wenn du das CGI Modul nutzt, schreibst du kein einzige Zeile HTML, sondern nur Funktionen.
Wenn ich mehrheitlich mit Ausgabe-Templates zu tun habe, sehe ich nicht ein, inwiefern erkennbarer = lesbarer HTML-Code in einem Template schlecht sein soll.
Das ist was anderes, damit trennst du ja Code und HTML. Aber ich hatte jetzt keinen Bock noch zusätzlich auf das nutzen eines Template Moduls zu drängen.
Zudem zwingt mir CGI einiges anderes auf (ich denke da an Query-String Daten in einem POST Kontext), so dass ich dem Modul in allen ausser den trivialsten Dingen den Arschtritt verpasse.
Keine Ahnung was du mit Query-Daten im Post Kontext meinst. CGI macht in meinen Augen nur die trivialsten Dinge, aber was zwingt mir das Modul auf?
z.b. wird so aus einem Array von Werten, schnell eine HTML Liste erzeugt.
use CGI;
my @list = qw(a b c d);
print CGI::ul( CGI::li(@list) );
>
> Ich behalte Autorität über die Formatierung der Ausgabequelle.
>
> print '<ul>',NL,
> map{'<li>'.$\_.'</li>'.NL }@list,
> '<ul>',NL;
Das ist deutlich länger und wenn noch Eigenschaften, wie z.b. class oder id, hinzukommen, wird es noch unübersichtlich. Wozu NL? Der Browser braucht das nicht.
Und wenn dir persönlich soviel daran liegt, kannst du auch [CGI::Pretty](http://perldoc.perl.org/CGI/Pretty.html) nutzen.
> > Bei Formularen ist es noch nützlicher, da du dir z.b. keine Gedanken mehr darum machen musst, dass die Werte wieder befüllt werden müssen, wenn jemand etwas fehlerhaft ausgefüllt hat.
>
> Bitte?
<http://de.wikipedia.org/wiki/Affenformular>
Struppi.