如何使用B :: Hook来操作perl解析器

LLF*_*urn 15 perl xs

我正在寻找perl解析器操作.看起来各种B::Hooks模块都是人们使用的.我在想:

  1. 对于没有XS经验的人来说,最好的起点.任何相关的博客文章?

  2. 创建新运算符需要做多少工作,例如:

    $a~>one~>two~>three

~>会工作,->但它不会试图打电话,undef而只是简单地返回undef到LHS.

虽然源过滤器可以工作 - 我更感兴趣的是看看如何在更深层次上操作解析器.

ike*_*ami 1

我不相信您可以添加中缀运算符(操作数位于运算符之前和之后的运算符),更不用说符号运算符(与命名运算符相反),但您可以编写一个替换方法调用的操作检查器。这意味着您可能会导致->foo行为不同。通过将模块编写为编译指示,您可以将模块的效果限制在词法范围内(例如{ use mypragma; ...})。