O rok po vydání Perl 5.28.0 došlo k vydání Perl 5.30.0.
Důležité změny:
- Byla přidána podpora Unicode verzí 11, 12 a návrhu 12.1;
- Horní limit „n“, určený v kvantifikátoru regulárního výrazu ve formátu „{m, n}“, byl zdvojnásoben na 65534;
- Metasymboly ve specifikacích hodnot vlastností Unicode jsou nyní částečně podporovány;
- Byla přidána podpora qr’N{name}’;
- Nyní je možné zkompilovat Perl, aby vždy používal vlákne-bezpečné operace s locale;
- Omezená délka proměnné v porovnávání s regulárním výrazem je nyní podporována experimentálně;
- Nyní je používána rychlejší metoda pro převod na UTF-8;
- Turecké locale UTF-8 jsou nyní bez problémů podporovány;
- Použití makra opASSIGN bylo odstraněno z jádra;
Funkcionalita, která byla odstraněna, a nekompatibilní změny:
- Odstraněny moduly: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Dělitele šablon nyní musí být grafémy;
- Dělitele nyní musí být grafémy;
- Některé dříve zastaralé způsoby použití neescapované levé závorky „{“ v regulárních výrazech jsou nyní zakázány;
- Přiřazení nenulové hodnoty proměnné $[ (index prvního prvku pole) je nyní fatální;
- Dříve zastaralé sysread()/syswrite() při zpracování :utf8 jsou nyní fatální.
- my() v nepravdivých podmínkách je nyní zakázáno;
- Bylo považováno za zastaralé $* (proměnná byla použita pro zahrnutí hledání vícerozměrných shod a byla odstraněna v Perl v5.10.0) a $# (proměnná byla použita pro formátování výstupních čísel a byla odstraněna v Perl v5.10.);
- Zastaralé nekvalifikované použití dump();
- Odstraněna File::Glob::glob();
- pack() již nemůže vracet neplatný UTF-8;
- Jakákoli sada číslic v obecném skriptu je povolena ve skriptu prováděném jiným skriptem;
- JSON::PP standardně zahrnuje allow_nonref;
Zastaralá funkcionalita:
- Nyní není povoleno v kódu XS používat různé makra, která zpracovávají UTF-8;
Zdroj: linux.org.ru

