Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regexp::汇编和无限循环_Regex_Perl_Cpan - Fatal编程技术网

Regexp::汇编和无限循环

Regexp::汇编和无限循环,regex,perl,cpan,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 =

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

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没有任何内置的迭代支持。您必须执行以下操作:

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