Hallo,
Bei mir erscheint halt diese nervende Seite von Apache mit Internal Server Error.
An was kann das denn noch liegen, dass es nicht funktioniert?
Andere Scripte funktionieren ja auch. Bis jetzt habe ich allerdings auch noch nie etwas mit use gemacht.
Nur zum testen sollte aber das Script so völlig ausreichen.
Nicht, wenn Du es mit dem Webserver verwenden willst.
Das Beispiel ist nicht dafür gedacht, 1:1 im Webserverumfeld verwendet zu werden. Perl ist ein weitaus vielseitiger einzusetzendes Werkzeug, um damit nur schnöde Webseiten zusammenzustöpseln.
Mit dem Apache läuft bei mir bisher alles. (shtml, cgi, php...)
Anscheinend ist da nur irgendwas falsch konfiguriert.
Nicht unbedingt. Wie schon gesagt, gewissen Konventionen mußt Du eben einhalten, wenn Du ein Script mit dem Webserver verwenden willst. s.u.
Wenn Du das Script per Commandline aufrufst, dann ist das was ganz anderes. (Und eigentlich ist Perl für diesen Einsatzzweck gedacht. Perl gab's schon, als HTML und HTTP noch gar nicht existierte)
Wenn Du also Perl mit einem richtigen Webserver verwenden willst dann sollte zu8mindest eine Zeile wie
print "Content-type: text/html";
nicht fehlen.
Wo ist denn der Unterschied zwischen "Apache-Perl-Dateien" und anderen? Das das Script nicht bei Unix funktioniert ist mir auch klar.
Der Apache-Webserver verlangt von jedem CGI-Programm, egal in welcher Sprache es geschrieben wurde, daß zumindest der Content-Type (also der Typ des Dokuments) und das Dokument selbst ausgegeben wird. Programme, die über die Commandshell aufgerufen werden, müssen das nicht tun.
Es kann sein, daß andere Webserver weniger Anforderungen stellen, als es beim Apache der Fall ist. Aber übel nehmen sie es dann auch nicht, wenn Du diese Ausgaben trotzdem machst.
Das alles hat nichts mit irgendeinem Betriebssystem zu tun. Daß ist ja auch der Grund, warum oft Perl für CGI-Programmierung eingesetzt wird.
Ach ja, vorhing vergaß ich vollkommen, dich auf das Allerwichtigste aufmerksam zu machen.
Was steht den eigentlich im Logfile? (Die findest Du meist unter %Installverz_von_Apache%\logs, wobei error.log das Objekt Deiner Begierde sein sollte)
Grüße
Klaus