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