3

PPサブが呼び出されると、このCXサブの が作成されます。
このコンテキストにアクセスすることで、CxHASARGS(CX_CUR())このサブルーチンをチェックできhasargsます。

ただし、XSUBコンテキストが作成されていないため、このトリックは使用できません。

XSUBを使用して呼び出されたかどうかを知ることは可能&subですか?

UPD
のソースをpp_entersub見るcvXSUB. コードが をどのように処理するかを見ることができますhasargs。アクセスPL_op->op_flags & OPf_STACKEDし、少し後でターゲットを呼び出しますXSUB

if( PL_op->op_flags & OPf_STACKED ...
...
CvXSUB(cv)(aTHX_ cv);

XSUBで同じチェックをしてもよろしいPL_op->op_flags & OPf_STACKEDでしょうか?

4

0 に答える 0