=item Code point 0x%X is not Unicode, all \p{} matches fail; all \P{} matches succeed
-(W utf8, non_unicode) You had a code point above the Unicode maximum
+(S utf8, non_unicode) You had a code point above the Unicode maximum
of U+10FFFF.
Perl allows strings to contain a superset of Unicode code points, up
This may be counterintuitive at times, as both these fail:
- chr(0x110000) =~ \p{ASCII_Hex_Digit=True} # Fails.
- chr(0x110000) =~ \p{ASCII_Hex_Digit=False} # Also fails!
+ chr(0x110000) =~ /\p{ASCII_Hex_Digit=True}/ # Fails.
+ chr(0x110000) =~ /\p{ASCII_Hex_Digit=False}/ # Also fails!
and both these succeed:
- chr(0x110000) =~ \P{ASCII_Hex_Digit=True} # Succeeds.
- chr(0x110000) =~ \P{ASCII_Hex_Digit=False} # Also succeeds!
+ chr(0x110000) =~ /\P{ASCII_Hex_Digit=True}/ # Succeeds.
+ chr(0x110000) =~ /\P{ASCII_Hex_Digit=False}/ # Also succeeds!
=item %s: Command not found
=item Operation "%s" returns its argument for non-Unicode code point 0x%X
-(W utf8, non_unicode) You performed an operation requiring Unicode
+(S utf8, non_unicode) You performed an operation requiring Unicode
semantics on a code point that is not in Unicode, so what it should do
is not defined. Perl has chosen to have it do nothing, and warn you.
=item Operation "%s" returns its argument for UTF-16 surrogate U+%X
-(W utf8, surrogate) You performed an operation requiring Unicode
+(S utf8, surrogate) You performed an operation requiring Unicode
semantics on a Unicode surrogate. Unicode frowns upon the use of
surrogates for anything but storing strings in UTF-16, but semantics
are (reluctantly) defined for the surrogates, and they are to do
(W signal) The signal handler named in %SIG doesn't, in fact, exist.
Perhaps you put it into the wrong package?
+=item Slab leaked from cv %p
+
+(S) If you see this message, then something is seriously wrong with the
+internal bookkeeping of op trees. An op tree needed to be freed after
+a compilation error, but could not be found, so it was leaked instead.
+
=item Smart matching a non-overloaded object breaks encapsulation
(F) You should not use the C<~~> operator on an object that does not
=item Unicode non-character U+%X is illegal for open interchange
-(W utf8, nonchar) Certain codepoints, such as U+FFFE and U+FFFF, are
+(S utf8, nonchar) Certain codepoints, such as U+FFFE and U+FFFF, are
defined by the Unicode standard to be non-characters. Those are
legal codepoints, but are reserved for internal use; so, applications
shouldn't attempt to exchange them. If you know what you are doing
=item Unicode surrogate U+%X is illegal in UTF-8
-(W utf8, surrogate) You had a UTF-16 surrogate in a context where they are
+(S utf8, surrogate) You had a UTF-16 surrogate in a context where they are
not considered acceptable. These code points, between U+D800 and
U+DFFF (inclusive), are used by Unicode only for UTF-16. However, Perl
internally allows all unsigned integer code points (up to the size limit