Ob man ssi angaben, wie z. B. eine Navigation durch cgi ersetzen kann, weiß ich nicht, aber mir wäre nicht ganz klar, wie das gehen sollte.
Wenn Du per SSI eine Environment-Variable ansprechen oder eine Bedingung auswerten willst, dann geht das in einer Programmiersprache genauso.
Willst Du mit SSI eine Datei includen, geht das mit open(), Einlesen, print() und close() mühelos.
Willst Du mit SSI eine URL includen, dann nimmst Du LWP::Simple, saugst den Inhalt mit get() ab und gibst ihn mit print() aus.
Wenn man zum Beispiel dieses forum hier nähme und davon ausginge, daß die navigation via ssi in die seite eingefügt wurde, dann ist es doch so, daß bei einer änderung der include file auch alle abgelegten nachrichten ihre navigation ändern.
Niemand will die Include-Datei ändern - nur die Wirkung der SSI-Anweisung durch Programmcode dynamisch nachbilden.
Das geht aber doch nur, weil das cgi sript über print NEWFILE das ssi in die file eingebaut hat.
Nein, es reicht, den Inhalt in den erzeugten Ausgabestrom einzustreuen.
Würde man dies ohne ssi erledigen, könte perl vielleicht die neuen dateien anpassen, wenn die navigation verändert wird, aber die alten nachrichten würden doch ihre alte navigation behalten. Oder?
Das ist der falsche Weg. Die von mir beschriebene SSI-Emulation würde keine einzige Datei statisch ändern - sie würde bei jedem Aufruf den Inhalt des anzuzeigenden Dokuments dynamisch erzeugen (genau wie SSI auch).