http://www.perlmonks.org?node_id=1221912


in reply to Fatal code point 0xFFFFFFFFFFFFFFFF

You've already received feedback regarding our inability to provide any direct help when you don't provide any code or data. Here's some indirect help.

The core module Unicode::UCD can provide a lot of information about Unicode characters. Here's a brief example:

$ perl -E 'use Unicode::UCD "charinfo"; my @cps = qw{U+DFA8 0xDFA8 0x1 +C9140 0xE6BAAA 0xFFFFFFFFFFFFFFFF}; for (@cps) { say "$_: ", defined +charinfo($_) ? "Assigned" : "Unassigned" }' U+DFA8: Assigned 0xDFA8: Assigned 0x1C9140: Unassigned 0xE6BAAA: Unassigned Hexadecimal number > 0xffffffff non-portable at /Users/ken/perl5/perlb +rew/perls/perl-5.28.0t/lib/5.28.0/Unicode/UCD.pm line 355. 0xFFFFFFFFFFFFFFFF: Unassigned

The $codepoint argument to charinfo($codepoint) can be in many formats. I added 0xDFA8 to your posted U+DFA8 as a minimal example. This $codepoint argument is used in a similar fashion by many of the other functions provided by Unicode::UCD.

Also be aware that different versions of Perl support different versions of Unicode.

Also note that Unicode is currently at version 11.0 (see "Announcing The Unicode® Standard, Version 11.0") which isn't supported by any version of Perl as yet. Unicode characters that you're investigating could be one of the 684 new characters in this version.

Just out of interest, I ran the above one-liner using 5.26 - the results were the same (except, of course, for 5.26 appearing in the message instead of 5.28).

$ perl -E 'use Unicode::UCD "charinfo"; my @cps = qw{U+DFA8 0xDFA8 0x1 +C9140 0xE6BAAA 0xFFFFFFFFFFFFFFFF}; for (@cps) { say "$_: ", defined +charinfo($_) ? "Assigned" : "Unassigned" }' U+DFA8: Assigned 0xDFA8: Assigned 0x1C9140: Unassigned 0xE6BAAA: Unassigned Hexadecimal number > 0xffffffff non-portable at /Users/ken/perl5/perlb +rew/perls/perl-5.26.0t/lib/5.26.0/Unicode/UCD.pm line 365. 0xFFFFFFFFFFFFFFFF: Unassigned

— Ken