Unix&Win32 -kompatibler Perl-Pfad
Robert Allerstorfer
hallo,
perl-cgi-scripts brauchen unter einer unix-umgebung in der ersten zeile den pfad zu perl, also zB.
#!/usr/bin/perl
wenn ich nun perl-scripts unter win32 für eine unix-umgebung schreibe, wäre es praktisch,
diese zeile nicht immer anzupassen, also zB. auf
#!D:/Programme/Perl/bin/perl
Ich hab in diesem forum mal gelesen, dass die Unix-Zeile auch unter win32 funktioniert, sofern der perl-pfad in der PATH-umgebungsvariable eingetragen ist.
Bei meinem NT4 und Perl 5.00502 funktioniert das aber leider nicht!
daher meine frage: gehts doch nicht oder muss ich noch was beachten?
lg,
rob.
hallo,
perl-cgi-scripts brauchen unter einer unix-umgebung in der ersten zeile den pfad zu perl, also zB.
#!/usr/bin/perlwenn ich nun perl-scripts unter win32 für eine unix-umgebung schreibe, wäre es praktisch,
diese zeile nicht immer anzupassen, also zB. auf
#!D:/Programme/Perl/bin/perlIch hab in diesem forum mal gelesen, dass die Unix-Zeile auch unter win32 funktioniert, sofern der perl-pfad in der PATH-umgebungsvariable eingetragen ist.
Bei meinem NT4 und Perl 5.00502 funktioniert das aber leider nicht!
daher meine frage: gehts doch nicht oder muss ich noch was beachten?
Ich bin mir nicht sicher, aber ich glaube, es geht, wenn du *.pl-Dateien in der Registry mit dem Perlinterpreter verknüpfst.
Ich bin mir nicht sicher, aber ich glaube, es geht, wenn du *.pl-Dateien in der Registry mit dem Perlinterpreter verknüpfst.
Das hab ich mir auch gedacht und habe deshalb die dateierweiterungen pl und cgi mit perl.exe registrieren lassen, half aber nichts :-(
rob.
Ich bin mir nicht sicher, aber ich glaube, es geht, wenn du *.pl-Dateien in der Registry mit dem Perlinterpreter verknüpfst.
Das hab ich mir auch gedacht und habe deshalb die dateierweiterungen pl und cgi mit perl.exe registrieren lassen, half aber nichts :-(
rob.
kannst du ein skript per doppelklick, oder per Dosbox ausführen lassen? (ohne das perl davorzustellen)
Hab mal gehört das einige HTTPd server die eigenschaft haben, sich den pfad zu perl.exe aus der registry auszulesen, egal was in der ersten zeile des Skriptes steht. Gilt natürlich nur für Win32.
CU
Rufinus
Ich bin mir nicht sicher, aber ich glaube, es geht, wenn du *.pl-Dateien in der Registry mit dem Perlinterpreter verknüpfst.
Das hab ich mir auch gedacht und habe deshalb die dateierweiterungen pl und cgi mit perl.exe registrieren lassen, half aber nichts :-(
rob.
kannst du ein skript per doppelklick, oder per Dosbox ausführen lassen? (ohne das perl davorzustellen)
Hab mal gehört das einige HTTPd server die eigenschaft haben, sich den pfad zu perl.exe aus der registry auszulesen, egal was in der ersten zeile des Skriptes steht. Gilt natürlich nur für Win32.
Ich glaube beim Omni konnte man den Perlpfad einstellen. Bin mir aber nicht ganz sicher, da ich mit dem Server seit einem halben Jahr nicht mehr arbeite. Wenn der Server den Pfad kennt, sollte das #! ignoriert werden.
Versuchs mal mit
#! c:\perl\bin\perl.exe (oder passend geändertem Pfad)
in der ersten Zeile des Skripts.
Jedenfalls funktioniert das unter Nt und Apache.
Freundliche Jrüße aus Berlin
Hi!
Ich bin mir nicht sicher, aber ich glaube, es geht, wenn du *.pl-Dateien in der Registry mit dem Perlinterpreter verknüpfst.
Das hab ich mir auch gedacht und habe deshalb die dateierweiterungen pl und cgi mit perl.exe registrieren lassen, half aber nichts :-(
rob.
Wenn Du einen Microsoft-Webserver benutzt (IIS oder auch PWS), liegt die Verknüpfung
mit dem Perl-Skript an folgender Stelle in der Registry
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap
(bin mir nicht 100%ig sicher, aber müßte in etwa stimmen. Notfalls die Registry nach
ScriptMap durchsuchen...)
Dort gehört z.B. für Perl ein Eintrag hin wie
.pl c:\bin\perl.exe %s %s
Wichtig sind die beiden '%s'-Einträge am Ende, sonst wird der Perl-Interpreter
ohne Skript gestartet.
Die normale Registrierung der Endungen über HKEY_CLASSES_ROOT
hat bei diesen Webservern keine Wirkung.
Viele Grüße
Andreas
Wenn Du einen Microsoft-Webserver benutzt (IIS oder auch PWS), liegt die Verknüpfung
mit dem Perl-Skript an folgender Stelle in der RegistryHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap
(bin mir nicht 100%ig sicher, aber müßte in etwa stimmen. Notfalls die Registry nach
ScriptMap durchsuchen...)Dort gehört z.B. für Perl ein Eintrag hin wie
.pl c:\bin\perl.exe %s %s
Wichtig sind die beiden '%s'-Einträge am Ende, sonst wird der Perl-Interpreter
ohne Skript gestartet.
Die normale Registrierung der Endungen über HKEY_CLASSES_ROOT
hat bei diesen Webservern keine Wirkung.Viele Grüße
Andreas
Danke für die "Anteilnahme", mir geht es aber gerade um plattformunabhängige Kompatibilität, deshalb verwende ich ja Perl und keine Microsoft-Scriptsprachen. Detto beim Webserver: hier verwend ich ausschliesslich Apache, da es ihn für Win32 genauso wie für Unix gibt und ganz nebenbei der am meisten eingesetzte Webserver überhaupt ist.
Ich habe den Dateityp-Erweiterungen pl und cgi für den Vorgang Open die Anwendung (...)\bin\Perl.exe "%1" %* zugewiesen, kann daher Dateien der endung .cgi aus der Dosbox durch die alleinige eingabe ihres dateinamens mit perl ausführen lassen, als cgi-script funkts allerdings nicht :-(
also gehts wahrscheinlich gar nicht ohne den richtigen pfad in der ersten zeile, oder?
rob.