Ein Jahr nach der Veröffentlichung von Perl 5.28.0 fand die Veröffentlichung statt Perl 5.30.0.
Wichtige Änderungen:
- Unterstützung für Unicode-Versionen 11, 12 und den Entwurf 12.1 hinzugefügt;
- Die obere Grenze „n“, die in Quantifizierern regulärer Ausdrücke in der Form „{m,n}“ angegeben wird, wurde auf 65534 verdoppelt;
- Metazeichen in den Spezifikationen der Unicode-Eigenschaftswerte werden jetzt teilweise unterstützt;
- Unterstützung für qr’N{name}’ hinzugefügt;
- Jetzt kann Perl so kompiliert werden, dass es immer threadsichere Locale-Operationen verwendet;
- Eine begrenzte Länge von Variablen im Mustervergleich mit regulären Ausdrücken wird jetzt experimentell unterstützt;
- Jetzt wird ein schnellerer Ansatz zur Konvertierung in UTF-8 verwendet;
- Türkische UTF-8-Lokalisierungen werden jetzt problemlos unterstützt;
- Verwendung des Makros opASSIGN aus dem Kern ausgeschlossen;
Entfernte Funktionen und inkompatible Änderungen:
- Entfernte Module: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Trenner in Mustern müssen jetzt Grapheme sein;
- Trenner müssen jetzt Grapheme sein;
- Einige zuvor veraltete Verwendungen der nicht escapten linken geschweiften Klammer „{“ in regulären Mustern sind jetzt verboten;
- Das Zuweisen eines von null verschiedenen Wertes an die Variable $[ (Index des ersten Array-Elements) ist jetzt fatal;
- Die früher veralteten sysread()/syswrite() bei der Verarbeitung :utf8 sind jetzt fatal.
- my() in falschen Bedingungen ist jetzt verboten;
- Es wird als veraltet angesehen, $* (Variable wurde zur Aktivierung der Suche nach mehrzeiligen Übereinstimmungen verwendet und wurde in Perl v5.10.0 entfernt) und $# (Variable wurde zur Formatierung ausgegebener Zahlen verwendet und wurde in Perl v5.10. entfernt);
- Es wird als veraltet angesehen, die nicht qualifizierte Verwendung von dump();
- File::Glob::glob() entfernt;
- pack() kann nicht mehr ungültiges UTF-8 zurückgeben;
- Jede Zeichensatzer in einem allgemeinen Skript ist in einem von einem anderen Skript ausgeführten Skript zulässig;
- JSON::PP enthält standardmäßig allow_nonref;
Veraltete Funktionen:
- Es ist jetzt nicht mehr erlaubt, verschiedene Makros, die UTF-8 verarbeiten, im XS-Code zu verwenden;
Quelle: linux.org.ru

