{
use charnames ":alias" => { FOO => 0x2660 };
my $pat1 = '\N{FOO}';
$re1 = qr/$pat1/;
}
{
use charnames ":alias" => { FOO => 0x2661 };
my $pat2 = '\N{FOO}';
$re2 = qr/$pat2/;
}
{
use charnames ":alias" => { FOO => 0x2662 };
/$re1$re2/
}
What should the pattern match? Probably /\N{U+2660}\N{U+2661}/, but the information is not available to qr// at run-time, much less to the m// operator that's not in scope of the relevant directives.
Those problems were resolved by converting \N{NAME} to \N{U+NUM} at compile-time, and throwing an error when presented with \N{NAME} at run-time.
"\N{NAME}" works. qr/\N{NAME}/ works. Others, not so much.