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

时间:2013-10-23 20:44:27

标签: regex perl

为什么这个炸弹

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。

1 个答案:

答案 0 :(得分:5)

这是5.18.05.17.1中修复的错误。

  

正则表达式中的代码块的实现,例如(?{})和(?? {}),已经进行了大量的重新设计,以消除大量的错误。主要的用户可见更改是:

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

  •   
  • 关于范围,递归和关闭行为,词汇变量现在都是合理的。

  •