A year after the release of Perl 5.28.0, the release Perl 5.30.0.
Important changes:
- Added support for Unicode versions 11, 12 and draft version 12.1;
- The upper limit "n" specified in a regular expression quantifier in the form "{m, n}" has been doubled to 65534;
- Metacharacters in Unicode property value specifications are now partially supported;
- Added support for qr'N{name}';
- Perl can now be compiled to always use the locale's thread-safe operations;
- Limited variable length in regex pattern matching is now experimentally supported;
- Now uses a faster method for converting to UTF-8;
- Turkic UTF-8 locales are now supported without problems;
- Removed the use of the opASSIGN macro from the kernel;
Features that have been removed and incompatible changes:
- Removed modules: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Pattern separators should now be graphemes;
- Separators should now be graphemes;
- Some previously obsolete ways of using the unescaped left bracket "{" in regular expression patterns are now prohibited;
- Assigning a non-zero value to $[ (the index of the first array element) is now fatal;
- The previously deprecated sysread()/syswrite() are now fatal when handling :utf8.
- my() in false conditions is now disabled;
- Deprecated $* (a variable used to enable multiline matching and was removed in Perl v5.10.0) and $# (a variable used to format output numbers and was removed in Perl v5.10.);
- The unqualified use of dump() is deprecated;
- Removed File::Glob::glob();
- pack() can no longer return invalid UTF-8;
- Any set of numbers in a shared script is valid in a script executed by another script;
- JSON::PP includes allow_nonref by default;
Deprecated functionality:
- Now you cannot use various macros in XS code that process UTF-8;
Source: linux.org.ru