Hallo! Ein Perlskript mit chmod 755 kann ich nur mit dem Befehl perl ./skript.pl aufrufen, nicht einfach nur mit ./skript.pl Woran liegt das? Ich habe das Phänomen bei 6.2 und 6.4 beobachtet, jeweils an der Console ohne konfiguriertes X. Die Rechner sind mit SuSE Netzwerkserver Standardinstallation versehen und haben keine Software aus Internet oder anderen Quellen zusätzlich installiert. Perl wird gefunden und liegt wie es soll in /usr/bin ??? Gruß Ralph --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Ralph Scharping schrieb:
Ein Perlskript mit chmod 755 kann ich nur mit dem Befehl perl ./skript.pl aufrufen, nicht einfach nur mit ./skript.pl Woran liegt das? Ich habe das Phänomen bei 6.2 und 6.4 beobachtet, jeweils an der Console ohne konfiguriertes X. Die Rechner sind mit SuSE Netzwerkserver Standardinstallation versehen und haben keine Software aus Internet oder anderen Quellen zusätzlich installiert. Perl wird gefunden und liegt wie es soll in /usr/bin
Hallo Ralph, lautet die erste Zeile des Scriptes: #!/usr/bin/perl -w (das -w ist nicht zwingend aber sinnvoll)? Gruss Michael -- Michael Baumeister E-mail: m.baumeister@gmx.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
From: "Michael Baumeister" <m.baumeister@gmx.de> Sent: Monday, August 21, 2000 5:53 PM Setze bitte den Reply-To nicht auf die Liste. Die Gründe wurden schon mehrfach ausgiebig erläutert und sind im Listenarchiv zu finden.
Ralph Scharping schrieb:
Ein Perlskript mit chmod 755 kann ich nur mit dem Befehl perl ./skript.pl aufrufen, nicht einfach nur mit ./skript.pl Woran liegt das? Ich habe das Phänomen bei 6.2 und 6.4 beobachtet, jeweils an der Console ohne konfiguriertes X. Die Rechner sind mit SuSE Netzwerkserver Standardinstallation versehen und haben keine Software aus Internet oder anderen Quellen zusätzlich installiert. Perl wird gefunden und liegt wie es soll in /usr/bin
Hallo Ralph, lautet die erste Zeile des Scriptes:
#!/usr/bin/perl -w
(das -w ist nicht zwingend aber sinnvoll)?
Das -w ist ab und zu durchaus nicht sinnvoll, z.B. kann es bei CGI-Skripten zu ungewünschte Nebeneffekten führen, weil z.B. Debug-Hinweise in die Ausgabe rutschen könnten... -- Marco Dieckhoff icq# 22243433 PGP key 9EFA D64F 5DAA D36B E0E7 CE1B 9E1B 4903 0C51 1632 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Marco Dieckhoff schrieb:
From: "Michael Baumeister" <m.baumeister@gmx.de>
#!/usr/bin/perl -w
(das -w ist nicht zwingend aber sinnvoll)? Das -w ist ab und zu durchaus nicht sinnvoll, z.B. kann es bei CGI-Skripten zu ungewünschte Nebeneffekten führen, weil z.B. Debug-Hinweise in die Ausgabe rutschen könnten...
Hallo Marco, also ich benutze stets das -w und habe noch keine Anwendung gefunden, in der es zu Nebeneffekten fuehrt. Hinweise, wie "Use of uninitialized value at ..." wuerden mir allerdings ohne das -w entgehen, und dass kann eindeutig zu "unerwuenschten Nebenwirkungen" fuehren. Zumindest fuer die Entwicklungsphase wird das -w in der Fach-Literatur meiner Kenntnis nach auch meistens empfohlen (in Verbindung mit "use strict") Siehe Wall, Christiansen, Schwartz: Programmieren mit Perl, oder Christiansen, Torkington: Perl Kochbuch. Gruss Michael -- Michael Baumeister E-mail: m.baumeister@gmx.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
From: "Michael Baumeister" <m.baumeister@gmx.de> Sent: Tuesday, August 22, 2000 6:46 AM
Marco Dieckhoff schrieb:
From: "Michael Baumeister" <m.baumeister@gmx.de>
#!/usr/bin/perl -w
(das -w ist nicht zwingend aber sinnvoll)? Das -w ist ab und zu durchaus nicht sinnvoll, z.B. kann es bei CGI-Skripten zu ungewünschte Nebeneffekten führen, weil z.B. Debug-Hinweise in die Ausgabe rutschen könnten...
Hallo Marco,
also ich benutze stets das -w und habe noch keine Anwendung gefunden, in der es zu Nebeneffekten fuehrt. Hinweise, wie "Use of uninitialized value at ..." wuerden mir allerdings ohne das -w entgehen, und dass kann eindeutig zu "unerwuenschten Nebenwirkungen" fuehren. Zumindest fuer die Entwicklungsphase wird das -w in der Fach-Literatur meiner Kenntnis nach auch meistens empfohlen (in Verbindung mit "use strict") Siehe Wall, Christiansen, Schwartz: Programmieren mit Perl, oder Christiansen, Torkington: Perl Kochbuch.
Natürlich. Aber ich benutze zum Beispiel oft mal Daten-Perlscripts nur mit Variablendefinitionen (z.B. $SENDMAIL = "/usr/sbin/sendmail";). Wenn ich diese dann per require einbinde und das Skript mit -w starte erhalte ich (z.B.) die Meldung "$SENDMAIL only used once"... Das steht natürlich gleich am Anfang, wo ein CGI-Skript eigentlich "Content-type: ..." abliefern sollte und von daher hab ich 'nen 500-Error am Hals. -- Marco Dieckhoff icq# 22243433 PGP key 9EFA D64F 5DAA D36B E0E7 CE1B 9E1B 4903 0C51 1632 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Marco Dieckhoff schrieb in 1,7K (46 Zeilen):
From: "Michael Baumeister" <m.baumeister@gmx.de>
Zumindest fuer die Entwicklungsphase wird das -w in der Fach-Literatur meiner Kenntnis nach auch meistens empfohlen (in Verbindung mit "use strict")
man perl [...] BUGS The -w switch is not mandatory. [...] Zu deutsch: Dass -w ueberhaupt als Schalter existiert und nicht fest eingebaut ist, ist ein BUG. In der Manpage wird 6(!) mal gesagt, dass man -w zu benutzen hat.
Natürlich. Aber ich benutze zum Beispiel oft mal Daten-Perlscripts nur mit Variablendefinitionen (z.B. $SENDMAIL = "/usr/sbin/sendmail";). Wenn ich diese dann per require einbinde und das Skript mit -w starte erhalte ich (z.B.) die Meldung "$SENDMAIL only used once"... Das steht natürlich gleich am Anfang, wo ein CGI-Skript eigentlich "Content-type: ..." abliefern sollte und von daher hab ich 'nen 500-Error am Hals.
perldoc vars ist die eine Antwort. Die andere ist: $SENDMAIL = "/usr/sbin/sendmail"; [...] if (0) { $SENDMAIL; [...] }; Und schon ist -w zufrieden. Im uebrigen verwendest du kein "use strict", das ist ein Fehler(tm). Dann musst du naemlich eines von: my $sendmail; local $::Sendmail; $::SENDMAIL; verwenden, je nach Scope (daher auch die unterschiedliche Schreibweise). Natuerlich kannst du auch $main::SENDMAIL sagen, wenn du die Package "main" explizit nennen willst. Wenn deine Scripte mit "use strict" und "-w" Fehler produziert, dann ist es einfach noch nicht sauber. Wenn du WIRKLICH EXPIZIT Teile davon abschalten musst, kannst du das sehr lokal und gezielt machen. (perldoc strict, perldoc perlvar). -Wolfgang --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Marco Dieckhoff schrieb in 1,7K (46 Zeilen):
Natürlich. Aber ich benutze zum Beispiel oft mal Daten-Perlscripts nur mit Variablendefinitionen (z.B. $SENDMAIL = "/usr/sbin/sendmail";). Wenn ich diese dann per require einbinde und das Skript mit -w starte erhalte ich (z.B.) die Meldung "$SENDMAIL only used once"... Das steht natürlich gleich am Anfang, wo ein CGI-Skript eigentlich "Content-type: ..." abliefern sollte und von daher hab ich 'nen 500-Error am Hals.
Huh? Da muss was schief laufen. Die Warning geht schliesslich nach STDERR waehrend das Output Deines Skripts nach STDOUT geht. Das sollte im Webserver keinen 500er geben denn Warnings sind eben nur das - Warnungen - Dein Code stuerzt deswegen ja noch lange nicht ab. Zurueck zum urspruenglichen Problem. Ich glaube, das Michael Baumeister's Antwort zutrifft. Ich kann mir auch gut vorstellen, dass es sich hier um ein Problem mit Dateiformaten (Dos, Unix, Mac) handelt. Gruesse, HJvLengerke --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Ralph Scharping <Scharping@netzschmiede.com> wrote in <s9a165f8.008@NOVELL.netzschmiede>:
Ein Perlskript mit chmod 755 kann ich nur mit dem Befehl perl ./skript.pl aufrufen, nicht einfach nur mit ./skript.pl Woran liegt das?
Jetzt keine Antwort auf Sinn und Unsinn von -w, sondern: Die 1. Zeile des Scripts muß auf dass executable zeigen. #!/usr/bin/perl oder #!/usr/local/bin/perl Da perl Scripts mit den unterschiedlichen Pfaden kursieren, habe ich einfach einen Link gelegt: ln -s /usr/bin/perl /usr/local/bin/perl oder ln -s /usr/local/bin/perl /usr/bin/perl je nachdem, wo bei Dir perl liegt. -- Ralf Cirksena <ci@holmco.de> --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Am Mon, 21 Aug 2000 schrieb Ralph Scharping:
Hallo!
Ein Perlskript mit chmod 755 kann ich nur mit dem Befehl perl ./skript.pl aufrufen, nicht einfach nur mit ./skript.pl
Woran liegt das? Ich habe das Phänomen bei 6.2 und 6.4 beobachtet, jeweils an der Console ohne konfiguriertes X. Die Rechner sind mit SuSE Netzwerkserver Standardinstallation versehen und haben keine Software aus Internet oder anderen Quellen zusätzlich installiert. Perl wird gefunden und liegt wie es soll in /usr/bin
Wie sieht die erste Zeile des Skripts aus? Dort sollte die zum Skript gehörige Shell angegeben werden: #!/usr/bin/perl Wenn das nicht drin steht kann Linux nicht riechen, welche Shellsprache verwendet wurde. -- Erhard Schwenk - http://www.fto.de **** Jetzt neu: http://www.akkordeonjugend.de **** --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (7)
-
ci@holmco.de
-
eschwenk@fto.de
-
hans@lengerke.org
-
linux@jwr.de
-
m.baumeister@gmx.de
-
Scharping@netzschmiede.com
-
weissel@netcologne.de