Ein Jahr nach der Veröffentlichung von Perl 5.28.0 fand die Veröffentlichung statt Perl 5.30.0.
Wichtige Änderungen:
- Die Unterstützung für Unicode-Versionen 11, 12 und die Entwurfsversion 12.1 wurde hinzugefügt;
- Die obere Grenze „n“, die im Quantifizierer des regulären Ausdrucks in der Form „{m,n}“ festgelegt wird, wurde auf 65534 verdoppelt;
- Metazeichen in den Spezifikationen der Unicode-Eigenschaftswerte werden jetzt teilweise unterstützt;
- Unterstützung für qr'N{name}' wurde hinzugefügt;
- Es ist jetzt möglich, Perl zu kompilieren, um immer thread-sichere Locale-Operationen zu verwenden;
- Eine experimentelle Unterstützung für die begrenzte Länge von Variablen im Vergleich zu regulären Ausdrucksmustern wurde jetzt implementiert;
- Ein schnelleres Verfahren zur Konvertierung in UTF-8 wird jetzt verwendet;
- Türkische UTF-8-Lokalen werden jetzt problemlos unterstützt;
- Die Verwendung des Macros opASSIGN im Kern wurde ausgeschlossen;
Entfernte Funktionen und inkompatible Änderungen:
- Die folgenden Module wurden entfernt: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Trennzeichen für Muster müssen jetzt Grapheme sein;
- Die Trennzeichen müssen jetzt Grapheme sein;
- Einige zuvor veraltete Möglichkeiten, die nicht maskierte linke geschweifte Klammer „{“ in regulären Ausdrucksmustern zu verwenden, sind jetzt verboten;
- Die Zuweisung eines Nicht-Null-Wertes an die Variable $[ (der Index des ersten Elements des Arrays) ist jetzt fatal;
- Früher veraltete sysread()/syswrite() bei der Verarbeitung von :utf8 sind jetzt fatal.
- my() in falschen Bedingungen ist jetzt verboten;
- Die Verwendung von $* (Die Variable wurde zum Einschalten der Suche nach mehrzeiligen Übereinstimmungen verwendet und wurde in Perl v5.10.0 entfernt) und $# (Die Variable wurde zur Formatierung ausgegebener Zahlen verwendet und wurde in Perl v5.10. entfernt) gilt als veraltet;
- Die nicht qualifizierte Verwendung von dump() ist veraltet;
- File::Glob::glob() wurde entfernt;
- pack() kann jetzt kein ungültiges UTF-8 mehr zurückgeben;
- Jede Ziffernreihe in einem allgemeinen Skript ist in einem von einem anderen Skript ausgeführten Skript zulässig;
- JSON::PP aktiviert standardmäßig allow_nonref;
Veraltete Funktionalität:
- Verschiedene Makros, die UTF-8 in XS-Code verarbeiten, können jetzt nicht mehr verwendet werden;
Quelle: linux.org.ru

