Perl 5.30.0 released


Perl 5.30.0 released

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

Add a comment