Padwalker

Spielen Sie mit lexikalischen Variablen anderer Menschen
Jetzt downloaden

Padwalker Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Robin Houston
  • Website des Verlags:
  • http://search.cpan.org/~robin/

Padwalker Stichworte


Padwalker Beschreibung

PADWALKER ist ein Perl-Modul, mit dem Sie in jeder Subroutine lexikale Variablen inspizieren (und sogar ändern!), Die Sie angerufen haben. Es zeigt nur diese Variablen, die an der Stelle des Anrufs in Umfang sind.Padwalker ist besonders nützlich für das Debuggen. Es wird sogar von Perls eingebauter Debugger verwendet. (Es kann natürlich auch zum Bösen verwendet werden.) Ich würde nicht empfehlen, Padwalker direkt in Produktionscode zu verwenden, aber es ist Ihr Anruf. Einige der Module, die PAGWALKER INTERN in intern verwenden, sind sicherlich sicher für und nützlich in der Produktion.Peek_My LevelPeek_our-Level Das Level-Argument wird wie das Argument für Anrufer interpretiert. SO PEEK_MY (0) gibt also einen Verweis auf einen Hash aller My-Variablen zurück, die derzeit in Umfang sind; PEEK_MY (1) gibt einen Verweis auf einen Hash aller My-Variablen zurück, der an dem Punkt, an dem der aktuelle Sub aufgerufen wurde, und so weiter zurück. PEEK_OUR arbeitet auf dieselbe Weise, mit der Ausnahme, dass er die unsere Variablen anstelle der meiner Variablen auflistet. Der Hash ordnet jeden Variablennamen mit einem Bezug auf seinen Wert zusammen. Die Variablennamen umfassen den SIGIL, sodass die Variable $ X durch die Zeichenfolge '$ X' dargestellt wird. Zum Beispiel: mein $ x = 12; mein $ h = peek_my (0); $ {$ h -> {'$ x'}} ++; $ x drucken; # Drucke 13 oder ein komplexeres Beispiel: sub increment_my_x {My $ h = peek_my (1); $ {$ h -> {'$ x'}} ++; } meine $ x = 5; increment_my_x; $ x drucken; # Druckt 6Peek_sub Sub Die PEEK_SUB-Routine nimmt einen CodeRef als Argument an und gibt einen Hash der in diesem Sub verwendeten Variablen zurück. Die Werte sind in der Regel undefiniert, es sei denn, der Sub ist damals (d. H. In der Anrufkette). Auf der anderen Seite: mein $ x = "Hallo!"; mein $ r = peek_sub (sub {$ x}) -> {'$ x'}; drucken "$$ r \ n"; # druckt 'Hallo!' Wenn der Sub mehrere meine Variablen mit demselben Namen definiert, erhalten Sie den letzten. Ich kenne keine Verwendung für PEEK_sUB, die nicht dadurch nicht kaputt ist, und es wird wahrscheinlich in einer zukünftigen Version zugunsten einer alternativen Schnittstelle veraltet. Listet die meine Variablen auf, die in der Subroutine verwendet werden, aber außerhalb definiert: Mit anderen Worten, die Variablen, die es abschließt. Dies hat angemessene Anwendungen: Siehe Data :: Dump :: Streamer, zum Beispiel (eine zukünftige Version, deren Tatsächlich closed_over verwendet werden kann) .set_cleased_over sub, hash_ref set_closed_over die PAD-Variablen, die von der Subroutine geschlossen sind. Das zweite Argument ist ein Hash von Referenzen, ähnlich wie der von closed_over.var_name-Level, VAR_REFVAR_NAME sub, var_ref var_name (sub, var_ref) gibt den Namen der von var_ref genannten Variablen zurück, vorausgesetzt, es ist eine in der Sub Der Unterparameter kann entweder eine Code-Referenz oder eine Zahl sein. Wenn es eine Zahl ist, ist es die gleiche Art und Weise wie das Argument zu peek_my behandelt. Zum Beispiel meines $ foo; drucken var_name (0, \ $ foo); # Druckt '$ foo' sub my_name {return var_name (1, Verschiebung); } Drucken my_name (\ $ foo); # DittoSYNOPSIS Verwendung PadWalker qw (peek_my peek_our peek_sub closed_over); ... Produkt Homepage


Padwalker Zugehörige Software