Michael Schröpl: perl mit apache unter nt

Beitrag lesen

Ja aber die Standardangabe lautet doch #!usr/bin/perl    ??? Da ist doch auch nur das Verzeichnis angegeben.

Aber nicht doch ...

Ich hab mich sowieso schon gewundert, wieso Du diesen Pfad zum Programm eintraegst, denn der ist fuer Windows-NT-Systeme nicht gerade ueblich. Dieser Pfad stammt aus der UNIX-Welt, wo viele kleine und grosse Utilities im Verzeichnis /usr/bin zu finden sind. Laufwerksbuchstaben wie in der Microsoftwelt gibt es dort nicht. Das Programm, dass dort liegt, heisst einfach perl, nicht perl.exe, sondern einfach nur perl. Unter UNIX werden ausfuehrbare Programme nicht an ihrer Dateiendung (.com, .exe) erkannt, sondern an dem/den gesetzten Execute-Bit(s) (auch X-Rechte genannt). Und deshalb ist /usr/bin/perl eben der komplette Pfad inclusive Name der ausfuehrbaren Datei.

Ganz genau. Die Namensgleichheit hat hier für die Verwirrung gesorgt.

In Windows gibt es ein Verzeichnis namens irgendwas\perl, das selbst wiederum Dateien und Unterverzeichnisse enthält. Bei meinem ActivePerl hier beispielsweise gibt es ein Programm perl.exe in einem Unterverzeichnis bin des Perl-Installationsverzeichnisses.
Die Idee dabei ist, daß das ganze Produkt irgendwohin installiert wird und daß dann die Programme daraus entweder durch expliziten Pfadnamen oder durch PATH gefunden werden.

In UNIX ist das aus Tradition etwas anders. Da will man u. a. aus Performance-Gründen nicht tausend Verzeichnisse in PATH stehen haben, sondern möglichst wenige. Also kippen einige Leute die Programme in einige wenige Verzeichnisse (/usr/bin für Betriebssystemkomponenten, /usr/local/bin für selbst installierte Software usw.). Dabei kann der Rest des Perl-Interpreters ganz woanders stehen - das "Perl"-Kommando selbst ist möglicherweise sogar nur ein Shell-Skript, in welches bei der Installation von Perl die entsprechenden Pfade eingetragen werden.

Daß es in solchen bin-Verzeichnissen dann irgendwann aussieht wie bei Hempels unterm Sofa, ist natürlich kein Wunder ...
Meine Methode: Perl irgendwohin installieren und in /usr/local/bin dann nur einen symbolic link auf das Perl-Programm - dann sind alle glücklich ...