トークン化を制御するために単一の Perl 正規表現文字クラスを使用する必要がある解析環境 (Marpa::R2::Scanless) があります。既存の文字クラスのいずれにも適合しないと思われるものをトークン化する必要があります。それで、perlunicode のドキュメントを掘り下げた後、期待どおりに動作しないことを除けば、次のコードを思いつきました。英数字以外のすべての文字 (括弧を除く) が散在するドットの列が表示されることを期待しています。代わりに、文字クラスが見つからないというランタイム エラーが発生します。
#!/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;
ヒント、ヒント、トリック、または提案はありますか?