oki ;-)
Ich möchte Dich aber nochmal davon zu überzeugen versuchen, dass Namensräume / use strict eine gute Sache sind:
Wenn Du use strict verwendest, musst Du alle Variablen mit my (oder anders) deklarieren. Dafür hast Du den Vorteil, Dich in einer Funktion darauf verlassen zu können, dass Du keine außerhalb verwendeten Variablen aus Versehen überschreibst, obwohl Du nur eine lokal gültige Variable schaffen wolltest.
Das hat wiederum den Vorteil, das abgeschlossene Stücke Code, wie etwa eine Funktion mit einer klaren Schnittstelle, die keine globalen Variablen verwendet,
a) leicht für sich verständlich ist
b) zwischen verschiedenen Programmen hin und her kopiert werden (und später vielleicht mal in ein Modul wandern) kann
c) Man beim Warten des Codes nicht so ein schwammiges Gefühl bekommt, weil man gar nicht mehr genau weiß, an welchen Stellen absichtlich oder unabsichtlich Variableninhalte geändert werden könnten.
Das alles kommt natürlich erst richtig zum Tragen, wenn man große Programme schreibt. aber auch kleine Programme können wachsen, und deshalb geb ich mir auch mit diesen fast immer die Mühe, strict zu verwenden.
Es ist einfach eine Hilfe bei der Entwicklung, und warum sollte ich dieseausschlagen? Ich sehe das so: andere Sprachen haben so etwas wie strict standardmäßig eingebaut, Perl nicht, weil es den Programmierern alle erdenkliche Freiheiten lassen will.
Die default-Einstellung für strict ist nur unglücklich gewählt, aber das liegt bestimmt an der Herkunft von Perl als bessere ksh-Skript / sed / awk Zusammenfassung.
Natürlich kannst Du es weiterhin weglassen, aber Du tust Dir einen Gefallen, es nicht zu tun. Nimm Dir doch einfach mal testweise vor, beim nächsten Projekt strict / warnings zu verwenden und einfach zu sehen, ob es Dir hinterher besser gefällt oder nicht.
*werbwerbwerb* ;)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite