Templates
Eine etwas sauberere Lösung ist es, HTML-Vorlagen (Templates) zu verwenden. Dadurch bleibt das HTML in einer separaten Datei, enthält aber Zusatzinformationen, meist in Form von speziellen XML-Tags. Die HTML-Datei wird vom CGI-Programm gelesen, und sobald das Programm auf diese speziellen Tags stößt, werden sie dynamisch durch den jeweiligen Content ersetzt. Diesen Ansatz verfolgt auch das HTML::Template-Modul, das im Perl-Archiv CPAN (Comprehensive Perl Archive Network) zu finden ist. Der folgende Code-Ausschnitt zeigt ein Beispiel für eine solche HTML-Vorlage:
<HTML><BODY> This car is <TMPL_VAR NAME="COLOR">. </BODY></HTML>
Und hier der Perl-Code, der dies verarbeitet:
#!/usr/bin/perl -w use HTML::Template; my $template = HTML::Template->new(filename=>"temp.html"); template->param(COLOR=> "red"); print template->output;
Der Wert der Template-Variablen COLOR („red“) ersetzt den Tag <TMPL_VAR>. Templates stellen eine sauberere Lösung dar als HERE-Dokumente, da Programmcode und Daten in jeweils eigenen Dateien getrennt voneinander bleiben. Für weitere Informationen über dieses Modul sollten Sie die HTML::Template-Manpage lesen. Viele serverseitige Technologien – von SSI bis ASP – verwenden eine Template-Strategie.
CGI.pm
Eine der ersten CGI-Lösungen war das berühmt-berüchtigte CGI.pm. Dieses Modul behandelt HTML-Tags als Code: für jeden HTML-Tag gibt es eine entsprechende Perl-Subroutine. So kann man den HTML-Code festlegen, ohne die normale Perl-Syntax zu verlassen. CGI.pm ist das Gegenteil von HERE-Dokumenten, denn hier besteht alles aus Perl-Code. Eine Beispiel-Seite mit CGI.pm könnte so aussehen:
#!/usr/bin/perl -w use CGI ":standard"; my $q = new CGI; print $q->start_html, "This car is red", $q->end_html;
Über diese Module gäbe es natürlich noch viel mehr zu erzählen, aber wir wollen uns ja nur einen Überblick für die folgenden Tests verschaffen.
Neueste Kommentare
Noch keine Kommentare zu Effiziente Website-Erstellung mit CGI
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.