guten Abend ;-)
In einem Thread weiter unten ([pref:t=48450&m=264540]) hat Henryk die Adresse http://nms-cgi.sourceforge.net/ empfohlen. Man bekommt dort (unter anderem) eine "aktualisierte" Fassung des wwwboard-Scripts von Matt Wright. Ich hatte mir das vor längerer Zeit schon mal angeschaut, war aber unschlüssig, aus folgendem Grund: Das Perl-Script ist ziemlich genau 2400 Zeilen lang und damit mehr als dreimal so umfangreich wie das "alte" - das zugestandenermaßen ein paar Sicherheitslöcher hat.
Jetzt habe ich es mir doch mal gründlicher angeschaut und dabei festgestellt, daß ziemlich genau zwei Drittel dieses neuen Scripts eigentlich "Inline-Module" sind, die man auch als eigenständige Module mit dem Namen *.pm wieder auslagern könnte.
Ich wußte zwar schon eine Weile, daß man sich eigene Module bei Bedarf erstellen kann und habe gelegentlich ganz erfolgreich damit herumexperimentiert, die Methode, solche Module aber gleich ins Perl-Script mit aufzunehmen, kannte ich aber noch nicht.
Meine Frage jetzt: wie sinnvoll ist es, sowas im Script zu belassen? Ich mag einfach Scripts mit über 1000 Zeilen nicht so besonders, es ist schwer, bei solchen Größenordnungen die Übersicht zu behalten, und außerdem habe ich ein paar schwer zu beweisende Bedenken, was die Performance betrifft. Sind solche Bedenken gerechtfertigt? Oder bringt es doch Vorteile, wenn man wirklich _alles_ in ein großes Script reinschreibt?
Mein Hauptbedenken gilt der Tatsache, daß das wwwboard schließlich eine cgi-Applikation ist und eigentlich so schnell als möglich seine Arbeitsergebnisse an den Server zurückliefern soll. Von verschiedenen LINUX-Installationen sind mir PERL-Scripts (oder/und Shell-Scripts) bekannt, die auf Systemebene arbeiten sollen und sogar noch deutlich umfangreicher sind als bloß ein paar lächerliche 2400 Zeilen - aber das sind dann eben keine cgi-Applikationen, die Dinger dürfen sich auch nen bissel Zeit lassen (man denke an die "configure"-Scripts zum Installieren von Software wie z.B. Apache).
Und noch eine Kleinigkeit: ich habe mir das Script natürlich schnell mal runtergeladen, in den Systempfaden (das sind lediglich drei Variablen) für mein aktuelles System modifiziert, um es ans Laufen zu bringen. Nur hab ich das auf einem WinXP-Rechner gemacht (der selbstverständlich sowohl einen ordentlichen Webserver wie auch ein aktuelles PERL hat), und das Script verlangt nun in Zeile 212 eine Angabe für
$basedir/.lock
buuhhhh! Wenn es keine solche Datei gibt, kriege ich nen Server-Error, aber wenn ich so eine Datei zu erstellen versuche, sagt mir mein WinXP, daß das nicht geht - "Sie müssen einen Dateinamen angeben". Will heißen, vor dem Punkt muß noch irgendwas stehen. Aus lauter Verzweiflung habe ich nach zwei Stunden einfach mal den Punkt weggelassen, und siehe da, das durfte ich dann plötzlich, und das Script akzeptierte meine null byte große "lock"-Datei sogar ohne weitere Nachfrage.
Die Punkte sind ja von ihrer Funktion her nur das Zeichen dafür, daß es sich um eine "versteckte" Systemdatei oder Konfigurationsdatei handelt, in die zur Laufzeit bzw. bei Bedarf etwas hineingeschrieben werden kann oder aus der wesentliche Informationen zum Verhalten entnommen werden können. Warum erlaubt mir WinXP nicht, so eine ".lock" anzulegen, wenn das doch mit ".htaccess" problemlos funktioniert?
Grüße aus Berlin\n\nChristoph S.