Guten Tag Bernd Obermayr, Am Sonntag, 7. Juli 2002 um 08:09 schrieb Bernd Obermayr:
On 07 Jul 2002 00:21:34 +0200 ratti
wrote:
Moin,
Bernd Obermayr:
#!/usr/bin/perl -w use strict;
an den Anfang des Scriptes geschrieben habe, hagelte es Fehlermeldungen
Global symbol "$ruser" requires explicit package name at ./vbox.pl line 37.
Das ist nicht unbedingt bedenkenswert. Ich selbst benutze -w und strict erst seit kurzem, mehr aus akademischem Interesse. Alle Programme, die ich bisher geschrieben habe, würden ebenso Fehlermeldungen raushauen, wenn du "strict" reinhängen würdest. Trotzdem laufen die meisten, telweise unter reichlich Last. ;-)
Beispiel:
#!/usr/bin/perl print $x;
Läuft prima. Gibt nix aus, denn perl initialisiert alle Variablen bei Programmstart als leer.
Wenn du das auf strict änderst:
#!/usr/bin/perl -w use strict; print $x;
...dann geht die große Hupe an. Das Programm ist nicht "falscher" als vorher,perl möchte nur vorher wissen, ob $x wirklich eine definierte Variable ist. Also tut man ihm den Gefallen:
#!/usr/bin/perl -w use strict; my $x; print $x;
Hi, fein, da hast Du fast recht. Ich hab das mal ausprobiert. Es stimmt, wenn ich vor alle Definitionen aus vbox.variables my schreibe und sie direkt in vbox.pl importiere.
Wenn aber, wie in dem Script vorgesen vbox.variables via require "vbox.variables"; eingebunden wird, krachts wieder.
Jetzt bekommt man gute Haltungsnoten. Trotzdem ist der Programmablauf und das Resultat nicht anders als vorher.
Wie gesagt, im vorliegenden Fall stimmt das nicht ganz ;)
Aus meiner Erfahrung mit anderen Programmiersprachen, wuerde ich sowas wie use strict immer benutzen. Es zwingt einen dazu sauber zu programmieren, was zugegeben, Zeit kostet, die man aber auf der anderen Seite locker wieder reinholt, weil man keine Zeit auf Fehlersuche wegen undefinierten, falsch typisierten, usw. Variablen verschwendet.
Gut bei perl kann ich da nicht richtig mitreden, ich kann Scripte einigermassen lesen, das wars dann aber schon.
Hi! wie wärs denn, wenn man die Einstellungen aus vbox.variables in die beiden .cgis eintragen würde? Dann hätte er doch alle Einstellungen direkt in der Datei. Das Einzige, was ich nicht genau weiss ist, welchen Eintrag muss ich deaktivieren, damit´s läuft? Immerhin sucht das Cgi ja die Einstellungen - aber in vbox.variables... Ciao und schönes Wochenende, Stefan -- Mit freundlichen Grüssen Stefan Schilling mailto:mail.suse@gmx.de