这在5.8和5.10中对我起作用,但在5.12中,我的代码会创建这个奇怪的非qr对象:
# running "print Dumper($regex)"
$VAR1 = bless( do{\(my $o = '')}, 'Regexp' );
如果打印一个不是由我的代码创建的qr//,它看起来像这样:
# running "print Dumper(qr/foo/i)"
$VAR1 = qr/(?i-xsm:foo)/;
我的代码基本上是这样的:
REGEXP *rx = re_compile(pattern, flags);
SV *regex = sv_2mortal(newSVpv("",0));
sv_magic(regex, (SV*)rx, PERL_MAGIC_qr, 0, 0);
stash = gv_stashpv("Regexp", 0);
sv_bless(newRV((SV*)regex), stash);
有人知道如何正确地在5.12中从字符串创建正则表达式吗?