リクエストトラッカー(RT)チケット作成ツールをカスタマイズしています。 SimpleSearch
サブルーチンから返された値にある特別なフィルタをRT::Users
に追加します。Perlフック:: LexWrapポストラッパーメソッドの戻り値にアクセスできません
Hook :: Lexwrapコードに続いて、上記のサブルーチンの戻り値と引数にアクセスするように記述しました。
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;
次の出力である:ここでは、戻り値(/opt/requestTracker/sbin/../local/lib/RT/Users_Localにアクセス
。 pm:6)
なぜ$ _ [ - 1]に空の値が存在するのか理解できません。 [ - 1]。包まれたサブルーチンによって生成戻り値 が含まれているスカラリターン コンテキストでは、この値は以下の
は、ポストのラッパー、$ _にhttp://search.cpan.org/~ether/Hook-LexWrap-0.25/lib/Hook/LexWrap.pm
」から引用テキストですスカラー戻り値 リスト戻りコンテキストでは、この値は戻り値の配列 への参照です。$ _ [ - 1]は ポストラッパーに割り当てられ、これに応じて戻り値が変更されます "
元のサブルーチンから戻り値にアクセスするにはどうすればよいですか?どんな助けもありがとうございます。ありがとう
ありがとうございました。呼び出されたサブルーチンから返された値を呼び出し元サブルーチンの変数に代入すると、それが解決されました。 – lazilyInitialised