Monkey :: patch :: action

enveloppe / ajouter / remplacer / supprimer des sous-marins d'un autre package (avec restaurer)
Télécharger maintenant

Monkey :: patch :: action Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • Perl Artistic License
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Steven Haryanto
  • Site Internet de l'éditeur:
  • http://search.cpan.org/~sharyanto/

Monkey :: patch :: action Mots clés


Monkey :: patch :: action La description

Monkey-Patching est l'acte de modifier un package à l'exécution: ajouter un sous-programme / méthode, remplacer / supprimer / enroulez un autre, etc. Perl facilite la tâche, par exemple: # Ajouter un sous-programme * {"Target :: sub1 "} = sub {...}; # Autre moyen, peut être fait à partir de n'importe quelle cible de package de fichiers; Sous-Sub2 {...} # Supprimer un sous-région UNDEF * {"Target :: Sub3"}; Monkey :: Patch :: Action est un module Perl qui facilite encore les choses en vous aidant à appliquer une pile de patchs et de les désamples plus tard dans l'ordre flexible.Synopsis utilise singe :: patch :: action qw (patch_package); paquet foo; Sub1 {dites "Sub2 de FOO Sub1"} Sub2 {Say "Sub2 de FOO, args =", rejoindre (",", @_)} Sub Meth1 {My $ Self = Shift; Dites "FOO'S Meth1"} Barre d'emballage; Notre @isa = qw (foo); paquet principal; mon $ h; # gérer objet mon $ foo = foo-> nouveau; ma barre de barre = bar-> nouvelle; # Remplacement d'un sous-programme $ H = Patch_Package ('FOO', 'SUB1', "Remplacer", sous {"qux"}); Foo :: sub1 (); # dit "QuX" Undef H $ H; Foo :: sub1 (); # dit "Foo Sub1" # Ajouter un sous-programme $ H = Patch_Package ('FOO', 'Sub3', 'Ajouter', sous {"qux"}); Foo :: sub3 (); # dit "QuX" Undef H $ H; Foo :: sub3 (); # matrices # Supprimer un sous-programme $ H = Patch_Package ('FOO', 'Sub2', 'Supprimer'); Foo :: sub2 (); # meurt undef $ h; Foo :: sub2 (); # dit "FOO's Sub2, args =" # Envelopper un sous-programme $ H = Patch_Package ('FOO', 'Sub2', 'Wrap', Sub {My $ CTX = Shift; Dites "Emballage $ CTX -> {Paquet} :: $ CTX -> {sous-nom} "; $ ctx -> {orig} -> (@_);}); Foo :: sub2 (1,2,3); # dit "Emballage FOO :: Sub2" Puis "Sub2 de FOO, args = 1,2,3" Undef H $ H; Foo :: sub2 (1,2,3); # dit "Sub2 de FOO, args = 1,2,3" # Patchs d'empilement (Remarque: peut réellement être non appliqué dans un ordre aléatoire) My ($ H2, $ H3); $ h = patch_package ('foo', "sub1", "remplacer", sous {"qux"}); Foo :: sub1 (); # dit "qux" $ h2 = patch_package ('foo', "sub1", "suppression"); Foo :: sub1 (); # matrices $ h3 = patch_package ('foo', 'sub1', "remplacer", sous {"lux"}); Foo :: sub1 (); # dit "QUX" UNDEF $ H3; Foo :: sub1 (); # meurt undef h2; Foo :: sub1 (); # dit "QuX" Undef H $ H; Foo :: sub1 (); # dit la page d'accueil du produit «Sub1» de FOO


Monkey :: patch :: action Logiciels associés