any ideas why RHEL-3's perl 5.8.1+ thinks { $s='a'; $s=~s///; !($s=~/^\p{IsASCII}+$/); }

Jason Vas Dias jvdias at redhat.com
Tue Oct 25 17:02:44 UTC 2005


Hi -
Any ideas on which particular upstream PERL patch fixes this 
issue would be much appreciated :

In RHEL-3's perl-5.8.0-88.9.1 / 5.8.0-88.9 (basically 5.8.1 in all but name):

$ perl -e '$s="a"; ($s=~/^\p{IsASCII}+$/) && print "yes\n";'
yes
$ perl -e '$s="a"; $s=~s///; ($s=~/^\p{IsASCII}+$/) && print "yes\n";'
$ (no)
$ perl -e '$s="a"; $s=~s///; ($s=~/^[[:ascii:]]+$/) && print "yes\n";'
yes
$ perl -e '$s="a"; $s=~s/n//; ($s=~/^\p{IsASCII}+$/) && print "yes\n";'
yes
$ perl -e '$s="a"; $s=~s/\s//; ($s=~/^\p{IsASCII}+$/) && print "yes\n";'
$ (no)

ie. the ^\p{IsASCII}+$ test always fails if it is preceded by a 's///' substitution
which does not substitute anything and attempts to match whitespace or nothing.

This is Bugzilla 171653 which I'm trying to fix.

I've searched the PERL bugs and done a cursory grep of the hundreds of PERL patches
applied since 5.8.[01], but cannot find any obvious candidates.

Any suggestions / ideas as to which set of upstream perl patches could be applied to
RHEL-3 that would fix this issue and not break anything else would would be much 
appreciated. 

Meanwhile I'm attempting to debug the regexec.c code to and looking at each patch
affecting regexec.c in order to determine what causes this and what fixes it in the
RHEL-4 and FC-{3,4,5} perl versions. 

Thanks & Regards,
Jason Vas Dias
Red Hat PERL package maintainer




More information about the Fedora-perl-devel-list mailing list