Change 27697 by rgs@stencil on 2006/04/03 08:30:27
Document that the regexp engine is not currently reentrant
Subject: Re: [perl #33936] segment fault when using split() in regexp with (?{})
From: Dominic Dunlop <domo (AT) computer (DOT) org>
Date: Sun, 2 Apr 2006 21:13:59 +0200
Message-Id: <@computer.org>
Affected files
//depot/perl/pod/perlre.pod#94 edit
Differences
//depot/perl/pod/perlre.pod#94 (text)
Index: perl/pod/perlre.pod
perl/pod/perlre.pod#93~27042~2006-02-01 11:30:52.000000000 -0800
perl/pod/perlre.pod2006-04-03 01:30:27.000000000 -0700
@@ -694,6 +694,10 @@
Better yet, use the carefully constrained evaluation within a Safe
compartment. See L<perlsecfor details about both these mechanisms.
+Because perl's regex engine is not currently re-entrant, interpolated
+code may not invoke the regex engine either directly with C<m//or C<s///>),
+or indirectly with functions such as C<split>.
+
=item C<(?{ code })>
X<(?{})>
X<regex, postponedX<regexp, postponedX<regular expression, postponed>
@@ -724,6 +728,10 @@
\)
}x;
+Because perl's regex engine is not currently re-entrant, delayed
+code may not invoke the regex engine either directly with C<m//or C<s///>),
+or indirectly with functions such as C<split>.
+
=item C<< (?>pattern) >>
X<backtrackX<backtracking>
End of Patch.