Rok po premierze Perl 5.28.0 odbyła się premiera Perl 5.30.0.
Ważne zmiany:
- Dodano wsparcie dla wersji Unicode 11, 12 oraz roboczej wersji 12.1;
- Górny limit „n”, określany w kwantyfikatorze wyrażenia regularnego w formie „{m, n}”, został podwojony do 65534;
- Metaznaki w specyfikacjach wartości właściwości Unicode są teraz częściowo obsługiwane;
- Dodano wsparcie dla qr’N{name}’;
- Teraz można skompilować Perl, aby zawsze używać wątkowo bezpiecznych operacji lokalizacji;
- Ograniczona długość zmiennej w dopasowywaniu do wzorca wyrażenia regularnego jest teraz obsługiwana eksperymentalnie;
- Teraz używana jest szybsza metoda konwersji na UTF-8;
- Tureckie lokalizacje UTF-8 są teraz obsługiwane bez problemów;
- Wykluczono użycie makra opASSIGN z jądra;
Funkcjonalność, która została usunięta, oraz niezgodne zmiany:
- Usunięto moduły: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Separatory wzorców muszą teraz być grafikami;
- Separatory muszą teraz być grafikami;
- Niektóre wcześniej przestarzałe sposoby używania nieescape'owanej lewej klamry „{” w wzorcach wyrażeń regularnych są teraz zabronione;
- Przypisanie wartości różnej od zera do zmiennej $[ (indeks pierwszego elementu tablicy) jest teraz krytyczne;
- Dotychczas przestarzałe sysread()/syswrite() podczas przetwarzania :utf8 są teraz krytyczne.
- my() w fałszywych warunkach jest teraz zabronione;
- Uznawane za przestarzałe $* (zmienna używana do włączania wyszukiwania wieloliniowych dopasowań, usunięta w Perl v5.10.0) oraz $# (zmienna używana do formatowania wyświetlanych liczb, usunięta w Perl v5.10.);
- Uznawane za przestarzałe niewykwalifikowane użycie dump();
- Usunięto File::Glob::glob();
- pack() już nie może zwracać nieprawidłowego UTF-8;
- Każdy zestaw cyfr w ogólnym skrypcie jest dozwolony w skrypcie wykonywanym przez inny skrypt;
- JSON::PP domyślnie zawiera allow_nonref;
Przestarzała funkcjonalność:
- Teraz nie można w kodzie XS używać różnych makr, które przetwarzają UTF-8;
Źródło: linux.org.ru

