gpt4 book ai didi

perl - 有没有办法从 XS 访问 perl 中的特殊标记?

转载 作者:行者123 更新时间:2023-12-04 12:57:18 24 4
gpt4 key购买 nike

在 perl 中的特殊标记,如 __PACKAGE__ , __SUB__ , __FILE__ , __LINE__存在并可从脚本中获得。

我可能会得到 __PACKAGE__ 的值来自 XSHvNAME( PL_currstash ) , 我想。
但是如何访问其他人?

是否有特殊的接口(interface)可以从 XS 访问所有这些? ?喜欢:CTX->package , CTX->sub等等

最佳答案

您可以在 toke.c 中一一查找对于编译时值:

  • __PACKAGE__ => HvNAME(PL_curstash)PL_curstname
  • __FILE__ => CopFILE(PL_curcop) (编译时)
  • __LINE__ => CopLINE(PL_curcop) (编译时)
  • __SUB__ => PL_compcv

  • 如果您在运行时需要它们,请查看上下文中可用的各种数据字段 caller_cx和当前子 ( cv)。没有在 parrot 或 perl6 中传递的上下文结构,而是一堆事件的上下文 block 。

    关于perl - 有没有办法从 XS 访问 perl 中的特殊标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521855/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com