为什么这个炸弹
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.0
和5.17.1
中修复的错误。
正则表达式中代码块的实现,例如 (?{}) 和 (??{}),经过大量返工以消除大量错误。用户可见的主要更改是:
模式中的代码块现在与周围的代码在同一传递中解析;
词法变量现在在范围、递归和闭包行为方面是理智的。