50、Perl 函数详解:MRO、多调用、数值及废弃兼容函数

Perl 函数详解:MRO、多调用、数值及废弃兼容函数

1. MRO 函数

MRO 函数与 Perl 类的方法解析顺序相关,以下是具体介绍:
- mro_get_linear_isa :返回给定存储库(stash)的 MRO 线性化结果。默认情况下,它返回 mro_get_linear_isa_dfs 的结果,除非该存储库使用了其他 MRO。返回值是一个只读的 AV* 。如果计划半永久存储返回值,需要调用 SvREFCNT_inc() 来增加引用计数,否则下次缓存失效时可能会被删除。

AV* mro_get_linear_isa(HV* stash)
  • mro_method_changed_in :使给定存储库的所有子类的方法缓存失效,以便它们能注意到该存储库的变化。理想情况下,Perl 源代码中 mro.c 之外的所有 PL_sub_generation++ 实例都应替换为对该函数的调用。在以下两种情况下,需要在更改方法后调用此函数:
    1. 从 XS 代码直接操作存储库的 HV 条目。
    2. 将只读标量常量的引用赋值给存储库条目以创建常量子例程(如 constant.pm 所做的那样)。
    此函数也可以通过纯 Perl 代码 mro::method_changed_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值