Devel :: Warnglobal.

Perl-Erweiterung, um die Beseitigung von Globallen zu unterstützen
Jetzt downloaden

Devel :: Warnglobal. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Stephen Nelson
  • Website des Verlags:
  • http://search.cpan.org/~stephen/Video-Xine-0.17/lib/Video/Xine.pm

Devel :: Warnglobal. Stichworte


Devel :: Warnglobal. Beschreibung

Perl-Erweiterung zur Hilfe bei der Beseitigung von Globals Devel :: WarnGlobal ist eine Perl-Erweiterung zur Hilfe bei der Beseitigung von globals.SYNOPSIS Verwendung Devel :: WarnGlobal $ foo => get_foo, $ BAR => ; Verwendung Devel :: WarnGlobal :: Scalar; Krawatte $ GLOBAL 'Devel :: WarnGlobal :: Scalar', {get => get_global}; Ein Programm voller globaler Variablen kann eine knifflige Sache zu debuggen. Sie kommen in verschiedenen Formen und Größen. Einige sind Paketvariablen standardmäßig exportiert. Einige sind direkt mit dem Zugriff auf $ MODULE :: Global syntax.Most erfahrene Programmierer sich einig, dass mit globalen Variablen ist eine schlechte Sache in großen Programmen, da sie beide erhöhen die Komplexität des Programms und können geringfügige Fehler einführen. Globals einführen Komplexität, da sie die Anzahl der Dinge erhöhen, dass Sie in Ihrem Kopf zu einem bestimmten Zeitpunkt zu halten brauchen. ( The heck Was ist $ frobozz sollte wieder sein?) Sie können subtile Fehler einführen, weil, wenn ein Stück Code aus Versehen sagt if ($ THNEE = 34), wenn sie wollte sagen, if ($ THNEE == 34) dann einem anderen Stück Code Meilen entfernt brechen könnte, und Sie werden für den Fehler auf der Jagd durch das gesamte Programm. Dies kann sehr zeitaufwendig sein! Das Standardmittel für grassierende globale Variablen ist Subroutinen zu schreiben, das die Information, dass die globalen zurückkehren soll enthalten. Zum Beispiel, wenn Sie ein globaler wie so haben:; $ CLOWN = Bozo, dann können Sie stattdessen ein Unterprogramm wie dieses schreiben: sub get_clown {return Bozo; } Und ersetzen Sie alle Instanzen von $ CLOWN mit get_clown (). Wenn zu einem bestimmten Zeitpunkt im Programm, das wir zu einem anderen Clown ändern, können Sie einen set_clown () -Methode schreiben und ändern all '$ CLOWN = Binky Aussagen zu set_clown (Binky). Für die Neugierigen, wäre eine Möglichkeit, dies zu tun: BEGIN {my $ Clown = Bozo; Unter get_clown () {return $ Clown; } Sub set_clown {my ($ new_clown) = @_; $ Clown = $ new_clown; }} Führt wieder eine Set Funktion Schreiben einige der Probleme, in erster Linie, die globale Variable, die seit dem Aufruf set_clown () in einem Teil des Programms kann Probleme in einem anderen Teil des Codes verursachen. Sie haben jedoch mehrere gute Dinge erreicht. Erstens ist ein set_clown Anruf leichter zu erkennen als eine $ CLOWN = foo Aussage. Zweitens können Sie Zugriffskontrollen in set_clown () stellen Sie sicher, dass get_clown zu machen () immer einen gültigen Clown zurück. Und drittens wird es einfacher, get_clown () und set_clown () in Klassenmethoden zu machen. Dann könnten Sie Anrufe wie $ haben Circus-> get_clown (), so dass es leichter zu trennen Zirkus-ähnliche Sachen aus nicht-Zirkus stuff.Globals schwer sein kann. Es kann schwierig sein, sie zu finden, und zeitaufwendig, sie alle auf einmal zu ersetzen. Devel :: WarnGlobal ist so konzipiert, um den Prozess zu erleichtern. Sobald Sie Ihre get Funktion geschrieben haben, können Sie diese Variable an die Funktion binden, und die Variable den Wert der Funktion immer wieder zurückkehren. Dies kann wertvoll sein, während der Prüfung, da es überprüfen dient, dass Sie Ihre neue get'-Funktion correctly.In verwendet, um zu verfolgen, nach unten global dem gegebenen geschrieben haben, Devel :: WarnGlobal könne zu warnen, wenn die globalen zugegriffen wird. Diese Warnungen sind standardmäßig aktiviert; sie werden von den warn Parametern gesteuert. Auch kann man Warnungen Ein- und Ausschalten mit der warnen () Methode für das Objekt gebunden. Wenn die_on_write gesetzt, Devel :: WarnGlobal wird sterben, wenn ein Versuch, Schreib auf einen Wert ohne Set Methode definiert hergestellt wird. (Andernfalls wird das set -Methode wird eine Warnung erzeugen, aber hat keinen Einfluss auf dem Wert.) Der Einfachheit halber können Sie Variablen in der Verwendung Linie mit Devel :: WarnGlobal binden. Oder können Sie das zugrunde liegende Devel verwenden :: WarnGlobal :: Scalar-Modul direkt. Anforderungen: · Perl.


Devel :: Warnglobal. Zugehörige Software