Mam środowisko parsowania (Marpa :: R2 :: Scanless), które musi używać pojedynczych klas znaków wyrażeń regularnych Perla do kontrolowania tokenizacji. Mam coś do tokena, które nie pasuje do żadnej z istniejących klas postaci. Po zapoznaniu się z dokumentacją perlunicode, wymyślam następujący kod, z tym że nie działa zgodnie z oczekiwaniami. Spodziewam się zobaczyć rząd kropek przeplatany wszystkimi nie-alfanumerycznymi (z wyjątkiem parenów). Zamiast tego dostaję błąd runtime o tym, że nie mogę znaleźć klasy znaków.Niestandardowa klasa znaków w Perlu 5.018
#!/usr/bin/env perl
use 5.018;
use utf8;
local $| = 1;
for my $i (map { chr($_) } 32 .. 127) {
if ($i =~ /\p{Magic::Wow}/) {
print $i;
}
else {
print ".";
}
}
package Magic;
sub Wow {
return <<'MAGIC';
+utf8::Assigned
-utf8::Letter
-utf8::Number
-0028
-0029
MAGIC
}
1;
Wszelkie wskazówki, porady, porady lub sugestie?
Dzięki. To niesamowite, jak niewiele takich ułamków może się przebić przez pęknięcia w podnieceniu. – PWBENNETT