Regexp :: Assemble和Infinite循环

时间:2014-10-27 22:07:19

标签: regex perl cpan

我有以下代码可以解释为什么这段代码进入无限循环以及如何捕获匹配的模式。

my $dis = (ff =>  'dfsdf2'
           yy => 'xx');

my $ra = Regexp::Assemble->new->track(1)->add(keys %dis);

my $data='blah blah ff dfsf yy';

while( $ra->match($data) ) {
        my $res = $ra->matched;
      print $res;
    }

我正在使用v5.18.0草莓和更新的Regexp :: Assemble

1 个答案:

答案 0 :(得分:0)

Regexp :: Assemble没有像这样的迭代内置支持。你必须这样做:

use 5.010;
my $re = $ra->re;
while ( $data =~ /$re/g ) {
    my $res = $ra->source($^R);
    print $res;
}