perl5133delta (1) Linux Manual Page
NAME
perl5133delta – what is new for perl v5.13.3
DESCRIPTION
This document describes differences between the 5.13.3 release and the 5.13.2 release.
If you are upgrading from an earlier release such as 5.13.1, first read perl5132delta, which describes differences between 5.13.1 and 5.13.2.
Core Enhancements
\o{…} for octals
There is a new escape sequence, "\o", in double-quote-like contexts. It must be followed by braces enclosing an octal number of at least one digit. It interpolates as the character with an ordinal value equal to the octal number. This construct allows large octal ordinals beyond the current max of 0777 to be represented. It also allows you to specify a character in octal which can safely be concatenated with other regex snippets and which won’t be confused with being a backreference to a regex capture group. See “Capture groups” in perlre.
\N{name} and charnames enhancements
"\N{}" and "charnames::vianame" now know about the abbreviated character names listed by Unicode, such as NBSP, SHY, LRO, ZWJ, etc., as well as all the customary abbreviations for the C0 and C1 control characters (such as ACK, BEL, CAN, etc.), as well as a few new variants in common usage of some C1 full names.
In the past, it was ineffective to override one of Perl’s abbreviations with your own custom alias. Now it works.
You can also create a custom alias directly to the ordinal of a character, known by "\N{...}", "charnames::vianame()", and "charnames::viacode()". Previously, an alias had to be to an official Unicode character name. This made it impossible to create an alias for a code point that had no name, such as the ones reserved for private use. So this change allows you to make more effective use of private use characters. Only if there is no official name will "charnames::viacode()" return your custom one.
See charnames for details on all these changes.
Uppercase X/B allowed in hexadecimal/binary literals
Literals may now use either upper case "0X..." or "0B..." prefixes, in addition to the already supported "0x..." and "0b..." syntax. (RT#76296) (a674e8d, 333f87f)
C, Ruby, Python and PHP already supported this syntax, and it makes Perl more internally consistent. A round-trip with "eval sprintf "%#X", 0x10" now returns 16 in addition to "eval sprintf "%#x", 0x10", which worked before.
Incompatible Changes
\400 – \777
Use of "\400" – "\777" in regexes in certain circumstances has given different, anomalous behavior than their use in all other double-quote-like contexts. Since 5.10.1, a deprecated warning message has been raised when this happens. Now, all double-quote-like contexts have the same behavior, namely to be equivalent to "
