Hi,
Und zwar weil dein Perl-Skript den Quellcode gleich an den Browser schickt.
ich denke, es ist der Webserver, der das tut. (Ansonsten stimme ich Dir zu.)
Du könntest mit Perl versuchen, die SSI Funktion nachzuahmen.
Das ist auch die Standard-Reaktion beispielsweise im Apache-Handbuch auf diese Frage: Wozu brauchst Du SSI, wenn Du CGI darfst und damit viel mächtigere Operationen zur Verfügung hast?
Es ist eine Frage der Architektur des Webservers. Dieser enthält eine Abbildung, welche Dateien er mit welchem Verfahren behandeln soll. Ein einfaches Verfahren ist "ausgeben", also den Inhalt nicht ändern. Ein komplizierteres Verfahren ist "server-parsed", also SSI-Anweisungen interpretieren und das Ergebnis einfügen. Ein ganz anderes Verfahren ist "cgi-script", also den Inhalt des Skripts nicht lesen, sondern als Programm ausführen.
Es wäre sicherlich vorstellbar, einen Webserver zu schreiben, der die Ausgabe seines Verfahrens selbst wiederum als Eingabe eines weiteren Verfahrens nimmt. Aber welches Verfahren soll das sein? Die Ausgabe Deines CGI-Skripts ist keine Datei, hat also keinen Dateiamen. Wie soll der Webserver entscheiden, ob diese Ausgabe nun fertig ist oder noch einmal durch den SSI-handler gejagt werden muß?
Bedenke auch, daß die Behandlung eines Dokuments durch einen komplexen Handler Zeit kostet, und die beliebige häufige Behandlung des im wesentlichen immer gleichen Inhalts beliebig viel Zeit. Deshalb ist es sinnvoller, nur *einen* Durchgang zu machen und in diesem - wenn man denn schon mal alles tun darf - dann gleich die endgültige Ausgabe zu erzeugen. Und ein SSI-INCLUDE in z. B. Perl zu erledigen kann ja nicht so arg schwer sein.
mfG - Michael