给定CODE ref,是否可以:

  • 访问该CODE ref的解析树
  • 通过指定CODE ref的解析树来创建一个新的CODE ref,该解析树可以包含在1
  • 中返回的解析树的元素

    通常,我们通过指定源代码在perl中创建子例程,然后将其解析并转换为解析树。

    我想编写一个perl函数,该函数可以通过指定其解析树来创建一个子例程,并且该解析树可以从某个其他子例程的另一个解析树派生而来。

    可能的?

    最佳答案

    我不知道您问题的完整答案,但我知道Data::Dumper可以取消代码引用。查看其文档,我发现它使用 B::Deparse 进行繁重的工作(B::模块是与编译器进行交互的模块)。不幸的是,这似乎只会导致coderef的文本表示。

    相反,我在metacpan上搜索 Op ,并获得了更多有趣的可能性。由于我现在对Perl最深的魔术知识还远远不够,我将把它留给您来查看这些结果。也许一些有用的东西。

    关于perl - 如何通过指定其分析树来创建Perl子?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12332046/

    10-11 15:12