gpt4 book ai didi

perl - 在 Perl 中拦截不存在的方法调用

转载 作者:行者123 更新时间:2023-12-04 12:49:21 27 4
gpt4 key购买 nike

我尝试拦截某些子类中不存在的方法调用。
是的,我知道 AUTOLOAD,
但是(对于方法)它首先尝试调用 parent::method,然后是 UNIVERSAL::method,然后才调用::AUTOLOAD。
但我首先需要调用(类似于)::AUTOLOAD。
因为我想知道子类尝试从父类调用哪些方法。

请给我一些建议。

最佳答案

  • 如果您只想知道正在使用哪些方法,可以使用一些分析模块,例如 Devel::NYTProf。
  • 如果您想在程序执行期间对此使用react,您可以像分析模块一样直接拦截 entersub 操作码。有关更多详细信息,请参阅 perlguts 或分析模块代码。
  • 您可能可以使用 FETCH 和 EXISTS 创建一个“监视器”类,并将其绑定(bind)到符号表哈希,例如: tie %Module::Name::, Monitor;

  • 但是,除非我们确切地知道您要做什么以及为什么要这样做,否则很难猜出什么是适合您的解决方案。

    关于perl - 在 Perl 中拦截不存在的方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6938381/

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