Rok po vydání Perlu 5.28.0 došlo k vydání Perl 5.30.0.
Důležité změny:
- Přidána podpora pro Unicode verze 11, 12 a koncept 12.1;
- Horní mez "n" uvedená v kvantifikátoru regulárního výrazu ve tvaru "{m, n}" byla zdvojnásobena na 65534;
- Metaznaky ve specifikacích hodnoty vlastností Unicode jsou nyní částečně podporovány;
- Přidána podpora pro qr'N{jméno}';
- Perl lze nyní zkompilovat tak, aby vždy používal operace bezpečné pod vlákny národního prostředí;
- Omezená proměnná délka versus vzor regulárního výrazu je nyní experimentálně podporován;
- K převodu do UTF-8 se nyní používá rychlejší metoda;
- Lokality Turkic UTF-8 jsou nyní podporovány bez problémů;
- Z jádra odstraněno použití makra opASSIGN;
Funkce, která byla odstraněna a nekompatibilní změny:
- Odebrané moduly: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Oddělovače vzorů by nyní měly být grafémy;
- Oddělovače by nyní měly být grafémy;
- Některá dříve zastaralá použití levé závorky „{“ bez escapování ve vzorcích regulárních výrazů jsou nyní zakázána;
- Přiřazení nenulové hodnoty $[ (index prvního prvku pole) je nyní fatální;
- Dříve zastaralé sysread()/syswrite() při zpracování :utf8 je nyní fatální.
- my() ve falešných podmínkách je nyní zakázáno;
- Zastaralé $* (proměnná používaná k povolení víceřádkového párování a byla odstraněna v Perlu v5.10.0) a $# (proměnná používaná k formátování výstupních čísel a byla odstraněna v Perlu v5.10.);
- Nekvalifikované použití dump() je zastaralé;
- Odebraný soubor::Glob::glob();
- pack() již nemůže vrátit neplatné UTF-8;
- Jakákoli sada čísel v obecném skriptu je platná ve skriptu prováděném jiným skriptem;
- JSON::PP ve výchozím nastavení obsahuje allow_nonref;
Zastaralá funkce:
- V kódu XS již nelze používat různá makra, která zpracovávají UTF-8;
Zdroj: linux.org.ru