"perl helloworld.pl" und "helloworld.pl"
vielfrager
- perl
0 Helmut Weber0 Efchen0 Norbert Kölln0 vielfrager
Hallo an alle!
ich hab ne Anfängerfrage zu perl: In meinem Perl-Lehrbuch (von Farid Hajji) wird gesagt, man kann auf einem Linux-Betriebssystem (ich hab -leider- Windows ME) ein Perlprogramm/script von der Kommandozeile aus
1. mit: "perl programmname.pl" starten oder auch
2. nur mit "programmname.pl", wenn der Pfad zum Interpreter in der ersten Zeile im Script korrekt angegeben ist.
Also der Pfad steht bei mir in der autoexec.bak(bat), das Programm läuft also auch, wenn ich "#!perl" da stehen habe, allerdings nur in der ersten Variante. Bei der zweiten gibt Windows, egal was ich in die She-Bang-Zeile schreib, (selbst bei dem kompletten Pfad zum Interpreter) aus: "Befehl oder Dateiname nicht gefunden".
Meine Frage(n): Woran liegt das? Geht die Variante nur bei Linux ? Oder hab ich das was falsch eingestellt? oder sollte ich einfach schneller tippen lernen ? ;-)
Grüsse, vielfrager
Hallo Vielfrager,
mit: "perl programmname.pl" starten oder auch
nur mit "programmname.pl", wenn der Pfad zum Interpreter in der ersten Zeile im Script korrekt angegeben ist.
Im ersten Fall Startest Du den Perl-Kompiler und übergibst ihm dein Skript programmname.pl. Diese Variante sollte immer funktionieren.
In der 2. Variante muss in der 1. Zeile deines Skriptes wie schon erwähnt der direkte Pfad zu deinem Perl-Kompiler stehen (z.B. C:/Programme/ActivePerl/bin/perl.exe)
Den 2. Fall habe ich bisher nur über die Verbindung über die CGI-Schnittstelle des Apache-Webservers ausprobiert. Ob dies auch für den Aufruf aus der Kommandozeile gilt, kann ich leider gerade nicht sagen. Aber ein Versuch ist es auf jeden Fall Wert!
Gruß
Helmut Weber
Moin,
Im ersten Fall Startest Du den Perl-Kompiler
Perl ist ein Interpreter und kein Compiler.
Schönen Tag,
-Efchen
Hallo Helmut Weber
Hallo Vielfrager,
mit: "perl programmname.pl" starten oder auch
nur mit "programmname.pl", wenn der Pfad zum Interpreter in der ersten Zeile im Script korrekt angegeben ist.
Im ersten Fall Startest Du den Perl-Kompiler und übergibst ihm dein Skript programmname.pl. Diese Variante sollte immer funktionieren.
Wenn der perl Interpreter gefunden wird (durch einen Eintrag in der Win umgebungsvariabel path)
In der 2. Variante muss in der 1. Zeile deines Skriptes wie schon erwähnt der direkte Pfad zu deinem Perl-Kompiler stehen (z.B. C:/Programme/ActivePerl/bin/perl.exe)
Nein, die 2. Variante geht in der DOS Konsole gar nicht, das es kein ausführbares Programm ist.
Den 2. Fall habe ich bisher nur über die Verbindung über die CGI-Schnittstelle des Apache-Webservers ausprobiert. Ob dies auch für den Aufruf aus der Kommandozeile gilt, kann ich leider gerade nicht sagen. Aber ein Versuch ist es auf jeden Fall Wert!
Mittlerweile stimt das auch nicht mehr.
Durch den Eintrag:
ScriptInterpreterSource registry
in der Apache Konfig ist es unter Win unwichtig was in der ersten Zeile steht.
Struppi.
Moin,
ScriptInterpreterSource registry
in der Apache Konfig ist es unter Win unwichtig was in der ersten Zeile steht.
Ist das Apache 2?
Es ist unter Windows auch dann unwichtig, wenn die Dateiendung .pl (oder .cgi, was man halt will) mit dem Perl Interpreter verknüpft ist.
Das ist insofern interessant, als dass man dann Perl-Scripte ohne Änderung unter Unix wie auch WIndows zum Einsatz bringen kann.
Gruß,
-Efchen
Ist das Apache 2?
Ohje da fragtste was. Ich hab den Installiert und konfiguriert und dann fertig. Aber die Doku sagt 1.3
Es ist unter Windows auch dann unwichtig, wenn die Dateiendung .pl (oder .cgi, was man halt will) mit dem Perl Interpreter verknüpft ist.
Ich nehm mal an, das das nur von der Konfiguration abhängt (AddHandler sollte auch mit cgi gehen)
Das ist insofern interessant, als dass man dann Perl-Scripte ohne Änderung unter Unix wie auch WIndows zum Einsatz bringen kann.
Genau aus dem Grund existiert diese Option - nehm ich mal an, früher musste man ja bei jedem Skript ständig die erste Zeile ändern.
Struppi.
Moin,
Meine Frage(n): Woran liegt das? Geht die Variante nur bei Linux ? Oder hab ich das was falsch eingestellt? oder sollte ich einfach schneller tippen lernen ? ;-)
Ich würde mal versuchen, den vollständigen Pfad zum Perl Interpreter anzugeben. Des weitreren hast Du unter Windows die Möglichkeit, die Dateinamensendung .pl mit den Perl Interpreter zu verknüpfen (das fragt Dich die Perl-Windows-Installation, ob Du das so haben willst).
Gruß,
-Efchen
Moin, moin!
Bei Windows-Systemen wird die She-Bang-Zeile ignoriert, da kannst Du beliebiges reinschreiben. Wenn Dein Windows die genannte Fehlermeldung bringt, bedeutet das vermutlich, dass keine Verknüpfung zwischen der Dateiendung .pl und der Perl.EXE eingerichtet ist.
Mach mal im Explorer einen Doppelklick auf eine .pl-Datei. Dann solltest Du gefragt werden, mit welchem Programm gearbeitet werden soll. Wähle die Perl.EXE aus und markiere, dass dieses Programm immer bei der genannten Dateiart angezogen werden soll. Von da an müßte es auch von der Kommandozeile aus funktionieren.
Alles klar?
Viele Grüße,
Norbert
Mach mal im Explorer einen Doppelklick auf eine .pl-Datei. Dann solltest Du gefragt werden, mit welchem Programm gearbeitet werden soll. Wähle die Perl.EXE aus und markiere, dass dieses Programm immer bei der genannten Dateiart angezogen werden soll. Von da an müßte es auch von der Kommandozeile aus funktionieren.
Oh, tatsächlich.
Seit welcher Win version ist das denn so?
Struppi.
Moin,
Seit welcher Win version ist das denn so?
Mindestens Win98.
Gruß,
-Efchen
Seit welcher Win version ist das denn so?
Mindestens Win98.
Ahh, danke. Das ist genau die version die ich nie hatte (und erst seit kurzem XP)
Struppi.
Servus,
das wäre mir jedoch neu.
Bei meinem Windows 2000 und XP System läuft ebenfalls Perl.
Und wenn ich die shebang nicht exakt anpasse, funktioniert mein Script nicht.
Komisch ?!?
Und nein Perl ist in keinem einzigen Path oder sonstigem eingetragen.
Ich will noch selbst wählen können, welches Script mit welcher Version von Perl läuft.
Gruss Matze
Danke Leute, für die prompten Antworten :-)