Tach!
Ach das kann man alles lernen, Schritt für Schritt. Wichtig ist, den Sinn und Zweck zu erkennen, warum ein Template: Um Code und Layout sauber zu trennen.
Es gibt auch andere Vorgehensweisen, Programme zu strukturieren. Im obigen Fall wird die Trennlinie zwischen verschiedenen Sorten von Code gezogen, hier Perl und HTML. Nun ist es aber so, dass auch in der Ausgabe Logik benötigt wird, um bestimmte Bereiche in Abhängigkeit auszugeben oder nicht, oder Bereiche wiederholt darzustellen, oder auch nur, um zu kennzeichnen, dass da Variableninhalte ausgegeben werden sollen. Man löst das Problem hierbei, indem man eine dritte Sorte Code hinzunimmt: template-engine-spezifische Syntax. Und natürlich braucht man auch noch die Template-Engine, die das Template parsen muss, die zusätzlichen Syntaxelemente erkennen und entsprechenden Code ausführen muss, um die Ausgabe nach Wunsch zu erzeugen.
Das Ziel, (Programm-)Code von Layout(-Code) zu trennen, ist auf diese Weise nicht erreichbar, wenn lediglich der eine Code (Template-Syntax) einen anderen Code (den der eigentlich verwendeten Programmiersprache) ersetzt. Im Prinzip ist es gar nicht erreichbar, solange irgendeine Art der Steuerung benötigt wird, um die Ausgabe zu erzeugen.
Eine andere sehr übliche Herangehensweise ist, die Trennlinie zwischen der Geschäftslogik (das was das Programm hauptsächlich tun soll) und der Ausgabe zu ziehen. Für die Steuerung der Ausgabe verwendet man dann einfach eingebetteten Code derjenigen Programmiersprache, die man sowieso schon verwendet. Meist beschränkt sich die Ausgabelogik auf if-then-else, Schleifen, Variablenausgabe sowie Maskierungsfunktionen.
Template-Engines mit eigener Syntax haben aber auch ihren Nutzen. Zum Beispiel dann, wenn die Templates von Personen ohne Programmierhintergrund erstellt werden sollen und sie lediglich die vereinfachte Syntax und die eingeschränkten Möglichkeiten der Template-Engine verwenden müssen. Im Prinzip bleibt es sich aber gleich, ob sie die drei Elemente in der einen Sprache oder der anderen erlernen müssen. Syntaktisch fehlerfrei müssen sie in jedem Fall arbeiten.
dedlfix.