A year after the release of Perl 5.28.0, the release occurred Perl 5.30.0.
Important changes:
- Added support for Unicode versions 11, 12, and draft version 12.1;
- The upper limit 'n' defined in the quantifier of a regular expression in the form '{m, n}' has been doubled to 65534;
- Metacharacters in Unicode property specifications are now partially supported;
- Support for qr'N{name}'; has been added
- Perl can now be compiled to always use thread-safe locale operations;
- Limited variable length in regular expression pattern matching is now experimentally supported;
- A faster method for converting to UTF-8 is now used;
- Turkish UTF-8 locales are now supported without issues;
- The use of the opASSIGN macro has been removed from the core;
Removed functionality and incompatible changes:
- Modules removed: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Pattern delimiters must now be graphemes;
- Delimiters must now be graphemes;
- Some previously deprecated ways of using unescaped left brace '{' in regular expression patterns are now prohibited;
- Assigning a non-zero value to variable $[ (the index of the first element of an array) is now fatal;
- Previously deprecated sysread()/syswrite() with :utf8 handling are now fatal.
- my() in false conditions is now prohibited;
- $* (a variable used to enable multi-line matching and removed in Perl v5.10.0) and $# (a variable used for formatting output numbers and removed in Perl v5.10.) is considered deprecated;
- Unqualified use of dump(); is considered deprecated;
- File::Glob::glob(); has been removed;
- pack() can no longer return invalid UTF-8;
- Any set of digits in a general script is allowed in a script executed by another script;
- JSON::PP by default includes allow_nonref;
Deprecated functionality:
- Various macros handling UTF-8 cannot be used in XS code anymore;
Source: linux.org.ru

