Wieso verarbeitet Perl keine SSI?

Gelesen bei AboutWebDesign.de
URL: http://www.aboutwebdesign.de/awd/content/1008172618.shtml

Viele Webmaster verwenden in Perl Templates. Oft enthalten Templates aber SSI-Anweisungen wie das praktische "include virtual". Wieso verarbeitet Perl diese nicht bzw. was kann man dagegen tun?

Perl verarbeitet diese nicht, weil, wenn CGI-Scripts verwendet werden, der SSI-Präprozessor des Servers umgangen wird. Soll heißen: der Teil der Servers, der sich normalerweise um SSI kümmert, wird einfach umgangen.

Nun ist es aber natürlich möglich, mit Perl einen eigenen Präprozessor zu schreiben. Eigentlich ist das ganz einfach:

sub SSI
{
    my $giveback = $_[0];
    
    $giveback =~ s/<!--#include virtual="(.+?)"-->/urlGet($1)/ge;
    
    return $giveback;
}

sub urlGet
{
    my $baseurl = "http://www.aboutwebdesign.de";
    
    use LWP::Simple;

    my $addurl = $_[0];

    return get($baseurl.$addurl);
}


Aufgerufen wird die Subroutine mit &SSI($text_mit_ssi). In der Funktion urlGet muss dann noch $baseurl an die eigene Site angepasst werden, typischerweise gehört hier die Domain der Seite hin.

Damit das funktioniert, muss das LWP-Modul installiert sein.