Nous personnalisons l'outil de création de ticket Request Tracker (RT). Nous souhaitons ajouter certains filtres supplémentaires aux valeurs renvoyées par le sous-programme SimpleSearch
au RT::Users
. Après le code Hook :: Lexwrap, nous avons écrit pour accéder à la valeur de retour et aux arguments du sous-programme ci-dessus.Perl Hook :: LexWrap Impossible d'accéder à la valeur de retour dans la méthode post-wrapper
Users_Local.pm
package RT::Users;
use strict;
use Hook::LexWrap;
wrap 'SimpleSearch' =>
post=> sub {
RT::Logger->info("accessing return value here $_[-1]");
RT::Logger->info("I got the arguments in post: [@_]");
},
;
1;
Voici le résultat:
accéder à la valeur de retour ici (/opt/requestTracker/sbin/../local/lib/RT/Users_Local. pm: 6)
Je ne suis pas capable de comprendre pourquoi une valeur vide existe dans $ _ [- 1].
Voici le texte cité http://search.cpan.org/~ether/Hook-LexWrap-0.25/lib/Hook/LexWrap.pm
"Dans un post-emballage, $ _ [- 1] contient la valeur de retour produit par le sous-programme enveloppé dans un retour scalaire contexte, cette valeur est. la valeur de retour scalaire Dans un contexte de retour de liste , cette valeur est une référence au tableau de valeurs de retour . $ _ [- 1] peut être affecté dans un post-wrapper , et cela modifie la valeur de retour en conséquence "
Comment puis-je accéder à la valeur de retour à partir du sous-programme d'origine? Toute aide est appréciée. Merci
Merci. L'attribution de la valeur renvoyée par le sous-programme appelé à une variable dans le sous-programme de l'appelant l'a résolu. – lazilyInitialised