[CGI-Modul]
Du bist wie Christoph, der output interessiert dich doch nichtDoch, ich will well formed (X)HTML und nicht alles in einer Zeile und nicht alles so, wie ich es halt nicht haben will ;)
Naja, well formed fällt leichter wenn es ein erprobtes Skript macht und alles in einer Zeile ist ja auch nicht.
Herumdoktern ist auch relativ, du musst nur beim einbinden ein entsprechenden Schalter setzen um XHTML zu vermeiden (der erstaunlicherweise -no_xhtml heißt)
Hm, ich wollte schon XHTML als DOCTYPE, aber nicht transitional sondern strict. Und ohne Herumdoktoren schafft es (wohlgemerkt nach meinem bisherigen Kenntnis- und Studierstand des Moduls) nicht.
use strict;
use CGI;
my $cgi = new CGI(-no_xhtml);
my $HTML_BODY = {
-dtd => '-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd',
-lang => 'de-de',
-title =>'Titel',
-meta =>
{
keywords => '',
copyright => '',
'content-type' => "text/html; charset=iso-8859-1"
}
};
print $cgi->header(), $cgi->start_html($HTML_BODY), $cgi->end_html();
Das hab ich grad bei mir gefunden, es ist zwar HTML strict, sollte aber leicht anzupassen sein (wobei XHTML strict ja nicht undebingt empfehlenswert ist, soweit ich das mitbekommen hab)
Erstens: Warum ist die XHTML-DOCTYPE-Variable eine Konstante?
Ist es nicht, es ist einfach nur ein Parameter, der beim einbinden des Moduls der Funktion import() übergeben wird.
Zweitens: So geht's dann doch, aber -sorry-, das ist mir zuviel Aufwand:
use CGI::Pretty;
use CGI::Carp qw(fatalsToBrowser);
CGI::XHTML_DTD->[0] =~ s/Transitional/Strict/;
CGI::XHTML_DTD->[1] =~ s/transitional/strict/;
print CGI::header();
Das würde ich nicht machen, das ist ein Eingriff in den Modulcode. Aber was ist daran Aufwand?
Ich binde das CGI-Modul mittlerweile in fast jedem Skript ein, aber nicht für die HTML-Ausgabe. Da mache ich lieber, was ich weiß, was dabei rauskommt.
Das Modul ist >200KB gross und das meiste sind Funktionen für die Ausgabe von HTML (vor allem für Formulare und Tabellen ist das Modul super) und du verwendest sie nicht? Vor allem du machst deinen Perlcode unübersichtlich und mischt was nicht zusammen gehört, deshalb ist ein Template System auf jeden Fall sinnvoll.
Mittlerweile auch meiner, man muss sich erstmal dran gewöhnen aber dann...
Wobei eigene Templates auch so sind, wie ich sie will (ätsch). Aber OK, das Teil hört sich schon sehr interessant an ;)
Hatte ich auch lange, aber ein Templatesystem sollte schon mehr können als nur einen Text ersetzten.
Struppi.