Hallo,
So, jetzt hast Du mich wirklich so weit, daß ich etwas ernsthafter antworte:-(
Die Fehler macht man sowieso, aber strict hilft ja auch bei logischen Fehlern usw.
'use strict' hilft wirklich nur, einfache Tippfehler aufzuspüren. Der eigentliche 'Nutzen' liegt eher darin, daß Variablen mit my bzw. our deklariert werden müssen, weil sich Perl sonst aufregt. Sämtliche andere Sünden, die man so begehen kann, werden dadurch nicht erkannt.
Es funktioniert schon nicht mal wenn ich dummerweise $x anstelle $y verwende, wenn beide irgendwann im aktuellen scope deklariert wurden. Und Logikfehler sind dadurch überhaupt nicht aufzuspüren. Da helfen eigentlich wirklich nur sehr ausgefeilte Testumgebungen.
Das gilt übrigens für jede Programmiersprache, egal ob sie über eine strenge Typprüfung oder keine verfügt.
Das Denken wird Dir in keinem Falle abgenommen.
Also, das debuggen macht use strict; schon einfacher, und ich erwarte von jedem Fragesteller, wenn er nicht gerade mit Perl angefangen hat und/oder use strict; nicht kennt, das er es verwendet. Sonst muß ich nicht antworten.
Auch hier kann ich (auch jetzt mal ernsthaft) nichtganz zustimmen.
Mir wird um 'use strict' einfach zu viel Wind gemacht. Es wird oft als Allheilmittel gegen Programmierfehler angesehen, was es aber de facto nicht ist.
Mindestens genauso wichtig erscheint mir, daß jeder sich, zumindest für sich, eine konsequente Formatierung des Programmcodes einfallen läßt (perldoc perlstyle ist da sicherlich eine gute Ausgangsbasis). Irgendjemand sehr schlauer hat mla gesagt, daß Sourcecode nie für die Maschine, sondern für den Menschen geschrieben werden soll. So sind striktes einhalten von Einrückungen und eine durchgängige Nomenklatur IMHO viel nützlicher, Fehler zu vermeiden als 'use strict'.
Programmieren ist nun mal eine Kunst, die weit über das Einhalten syntaktischer Regeln hinaus geht.
Dann muss man aber auch sagen, dass lexikale Variablen (mit my deklariert) 'schneller' sind als globale Package-Variablen. Und das summiert sich auch.
Das ist mir neu, hast Du vielleicht einen Link, wo das näher erklärt wird?
Abschließend sollte ich vielleicht noch sagen, daß ich auch 'use strict' verwende, allein schon aus übermäßiger Faulheit. Auch ich will nicht wirklich jeden typo selber finden.
Grüße
Klaus