我很好奇使用不同的正则表达式引擎代替默认 Perl 引擎的最佳实践,以及为什么我看到的模块是编译指示而不是更传统的 OO/过程接口。我想知道为什么会这样。
我见过一些模块在给定的情况下用 PCRE (re::engine::PCRE)、TRE (re::engine::TRE) 或 RE2 (re::engine::RE2) 替换 Perl 正则表达式引擎词汇上下文。我找不到任何面向对象的模块来创建/编译使用不同后端的正则表达式。我很好奇为什么有人会选择将这个功能作为一个编译指示而不是一个更典型的模块来实现。似乎替换 perl 正则表达式引擎(取决于它公开的 API 的复杂性)比制作一个公开 PCRE、TRE 和 RE2 已经提供的 API 的 XS 脚本要困难得多。