Ich habe etwas Perl-Code geerbt, der natürlich weder streng noch Warnungen verwendet, und ich benutze weiterhin nicht initialisierte Variablen und dergleichen.Bracket Code Abschnitt in Gebrauch streng/nicht streng?
Ich mag die Codeabschnitte klammern, dass ich so bin ändern:
use warnings;
use strict;
... my code changes and additions ...
no strict;
no warnings;
Und das scheint zu funktionieren, aber ich habe Probleme zu entziffern, was the perldoc on use bedeutet, wenn sie sagt, das ist Compiler-Direktiven, die in den aktuellen "Block-Bereich" importieren. Bedeutet das, dass jeder Bereich eine use strict
ungepaarte mit einer no strict
haben kann? Ist die no strict
am Ende des globalen Bereichs im Wesentlichen die Bedeutung von use strict
im selben Umfang im Wesentlichen rückgängig gemacht?
Ich bestätige, das ist eine gute Idee, * vorübergehend * mit vorhandenem Code zu arbeiten. Noch besser wäre es, Ihre Ergänzungen in eine separate Bibliotheksdatei zu integrieren. Sie werden schließlich alles unter strikt zu bringen wollen. – Schwern
Jemand, der '' streng 'natürlich nicht verwendet, erlaubt auch nicht einfache Codeverkapselung ... Ich muss ihren eleventytwo globalen hashtables hinzufügen, Sie sehen ... – stevesliva
Ja, es ist frustrierend, aber es verhindert nicht Sie verwenden Bibliothek Unterroutinen. Sie können sich auf ihre Globals mit '% main :: blah' beziehen (vorausgesetzt, sie befindet sich im Paket main). Noch besser, übergeben Sie ihre Globals, die Sie ändern müssen, in Ihre Subroutinen als Referenz: 'some_new_sub (\% blah)'. Es wird verhindern, dass ihr globales Durcheinander neuen Code infiziert. Dies wird zunächst unordentlich sein, aber es wird Ihnen eine bessere Vorstellung davon geben, welcher Code welche Daten benötigt. Durch all dies wird das Extract Method-Muster Ihr stärkstes Werkzeug sein. – Schwern