为什么我不能在 QR 下连接在编译和运行时评估的模式?



为什么这个炸弹

perl -e 'print qr{$_(??{$_})}'

虽然这两者都是分开工作的:

perl -e 'print qr{$_}'
perl -e 'print qr{(??{$_})}'

错误消息是

Eval-group not allowed at runtime, use re 'eval' in regex m/(??{$_})/ at -e line 1.

真的,我应该升级Perl吗?我有 5.14.4。

这是

5.18.05.17.1中修复的错误。

正则表达式中代码块的实现,例如 (?{}) 和 (??{}),经过大量返工以消除大量错误。用户可见的主要更改是:

  • 模式中的代码块现在与周围的代码在同一传递中解析;

  • 词法变量现在在范围、递归和闭包行为方面是理智的。

最新更新