Subject: | s/// inside (?{}) makes compilation fail |
The following short script:
use Regexp::Debugger;
my $re = qr{
(?{
s/a/b/;
})
}x;
dies with:
$VAR1 = {
'std_info' => {
'regex_pos' => 0,
'construct_type' => undef,
'quantifier' => '',
'depth' => 1,
'construct' => '',
'indent' => ' '
},
'%+' => {
'construct' => '',
'start' => ''
}
};
$VAR1 = {
'%+' => {
'construct' => 'a',
'atom' => 'a',
'_self_matching' => 'a'
},
'std_info' => {
'construct_type' => '_self_matching',
'regex_pos' => 0,
'indent' => ' ',
'construct' => 'a',
'depth' => 2,
'quantifier' => ''
}
};
$VAR1 = {
'%+' => {
'construct' => '',
'end' => ''
},
'std_info' => {
'depth' => 2,
'quantifier' => '',
'indent' => ' ',
'construct' => '',
'regex_pos' => 1,
'construct_type' => undef
}
};
$VAR1 = {
'%+' => {
'construct' => '',
'start' => ''
},
'std_info' => {
'indent' => ' ',
'construct' => '',
'depth' => 1,
'quantifier' => '',
'construct_type' => undef,
'regex_pos' => 0
}
};
$VAR1 = {
'%+' => {
'construct' => '
',
'whitespace' => '
',
'whitespace_chars' => '
'
},
'std_info' => {
'indent' => ' ',
'construct' => '
',
'depth' => 2,
'quantifier' => '',
'construct_type' => undef,
'regex_pos' => 0
}
};
$VAR1 = {
'%+' => {
'construct' => '(?{
s/a/b/;
})',
'code_block' => '(?{
s/a/b/;
})'
},
'std_info' => {
'construct_type' => undef,
'regex_pos' => 1,
'construct' => '(?{
s/a/b/;
})',
'indent' => ' ',
'quantifier' => '',
'depth' => 2
}
};
$VAR1 = {
'std_info' => {
'construct_type' => undef,
'regex_pos' => 27,
'indent' => ' ',
'construct' => '
',
'depth' => 2,
'quantifier' => ''
},
'%+' => {
'construct' => '
',
'whitespace' => '
',
'whitespace_chars' => '
'
}
};
$VAR1 = {
'std_info' => {
'construct' => '',
'indent' => ' ',
'quantifier' => '',
'depth' => 2,
'construct_type' => undef,
'regex_pos' => 28
},
'%+' => {
'construct' => '',
'end' => ''
}
};
Undefined subroutine &main::CODE(0x243b608) called at (eval 14) line 10.