@pq & P
"if" ist gehört nicht da ganz klar nicht rein.. bzw. der funktionalität her, könnte man es lassen. aber mit dem vermerk "nur für notfälle"
Es wäre auch dumm das Rad 2 mal zu erfinden. In Perl gibt's bereits if.. usw. dazu braucht man das nichts template einzubauen das verwirrt nur und ist unsauber da man programmierung und darstellung trennen sollte.
Zudem hat das template-If viel weniger möglichkeiten.. man müsste quasi alle funktionen integrieren.. und am ende hat man ein Super-template-model das zwar alles kann,
dann kann man gerade so gut so einen mist schreiben..
<?php?>
HTML
<?php?>
HTML
<?php?>
HTML
Zudem muss das Template editierbar bleiben (HTML-Konform). Also dargestellt werden wenn man es ohne es zu ändern nur so in den "Browser zieht". Cpan::template flüchtet gemäss author hier in die Kommentare..
Was ich im prinzip nicht schlimm finde, aber manchmal will man eben gleich "sehen" wo etwas ersetzt wird.
Grundsätzlich ist bei einem guten System programmierlogik, ablauf nicht ins template implementiert. Sowas wäre totaler schwachsinn auch wenn jetzt z. B. coldfusion usw. in die richtung gehen.
Ein template muss nichts "können" nur darstellen
den rest sollte man den richtigen Programmiersprachen überlassen...
1. sonst gibts durcheinander
2. programmierlogik gehört nicht in ein "layout"
Das modul ::template ist im prinzip relativ ok... nur ist das "if" überflüssig. Sowas ist schlechte programmierung.
ps. sagte doch nichts von buissnesslogik oder?
Sauberer Stil ist:
GUI (Interface, layout, darstellung, vorlagen(templates))
------------
Verarbeitung
------------
Datenhaltung
Und das hat seinen Grund. Nur weil es ev. viele falsch machen, heisst es nicht, dass das richtig wäre.
Es würde ja auch keiner von euch auf die Idee kommen ein Bild binär in den template-code zu integrieren. dann beim Parsen auslesen und in eine datei zuschreiben. Wäre ja eignetlich möglich..
Stellt euch mal ein mehre Templates mit vielen ifs vor.
im Hauptcode werden dann alle templates implementiert, mit Perl-ifs.
da verliert man den überblick. oder plötzlich wird etwas nicht mehr angezeigt,
ps. PHP und ASP's <??>HTML<??>-Ansätze sind totaler Mist.
Zum Glück geht das in perl nicht so einfach.
Wer so entwickelt soll sich schämen. Wir haben hier in der Firma leider nur solche Vorarbeiten :-( Änderungen dauern Tage, welche sonst in 2 Minuten gemacht wären, hätte man die Trennung.
HTML und Code gehören so weit es geht getrennt.
Am Ende ist es aber besser ein Template zu nutzen als keines..
Und wenn man das Template IF nutzt, darf man keine darstellungs-logik paralell in Perl implentieren... "entweder oder" dann kommt man an den Anschlag irgendwann und muss gewisse Sachen trotzdem in Perl machen. Am Ende entsteht das Chaos, weil mal hier(perl) mal im Template if's usw. stehen.
Programmierung || Darstellung sind 2 völlig verschiedene Sachen. Vermischt man es, gibts Probleme.
Ich weiss das aus eigener Erfahrung von früher her. z. B. mit der Visual Basic-Krücke.
$i='re5tsFam ^l\rep';$i=~s/[^a-z| ]//g;$\= reverse "\U!$i";print;