This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mk_PL_charclass.pl: Don't use \w, \s
[perl5.git] / regen / mk_PL_charclass.pl
index a2f837f..4554c3b 100644 (file)
@@ -52,6 +52,7 @@ my @properties = qw(
     WORDCHAR_A
     WORDCHAR_L1
     XDIGIT_A
+    QUOTEMETA
 );
 
 # Read in the case fold mappings.
@@ -125,20 +126,22 @@ for my $ord (0..255) {
             # just \pP outside it.
             $re = qr/\p{Punct}|[^\P{Symbol}\P{ASCII}]/;
         } elsif ($name eq 'CHARNAME_CONT') {;
-            $re = qr/[-\w ():\xa0]/;
+            $re = qr/[-\p{XPosixWord} ():\xa0]/;
         } elsif ($name eq 'SPACE') {;
-            $re = qr/\s/;
+            $re = qr/\p{XPerlSpace}/;
         } elsif ($name eq 'IDFIRST') {
             $re = qr/[_\p{Alpha}]/;
         } elsif ($name eq 'PSXSPC') {
             $re = qr/[\v\p{Space}]/;
         } elsif ($name eq 'WORDCHAR') {
-            $re = qr/\w/;
+            $re = qr/\p{XPosixWord}/;
         } elsif ($name eq 'ALNUMC') {
             # Like \w, but no underscore
             $re = qr/\p{Alnum}/;
         } elsif ($name eq 'OCTAL') {
             $re = qr/[0-7]/;
+        } elsif ($name eq 'QUOTEMETA') {
+            $re = qr/\p{_Perl_Quotemeta}/;
         } else {    # The remainder have the same name and values as Unicode
             $re = eval "qr/\\p{$name}/";
             use Carp;