Праз год пасля рэлізу Perl 5.28.0 адбыўся рэліз Perl 5.30.0.
Важныя змены:
- Дададзена падтрымка Unicode версій 11, 12 і чарнавога варыянту 12.1;
- Верхняя мяжа «n», які задаецца ў квантыфікатары рэгулярнага выразы ў форме «{m, n}», быў падвоены да 65534;
- Метасімвалы ў спецыфікацыях значэнняў уласцівасцяў Unicode зараз часткова падтрымліваюцца;
- Дададзена падтрымка qr'N{name}';
- Цяпер можна скампіляваць Perl, каб заўсёды выкарыстоўваць струменебяспечныя аперацыі лакалі;
- Абмежаваная даўжыня зменнай у супастаўленні з узорам рэгулярнага выраза зараз падтрымліваецца эксперыментальна;
- Цяпер выкарыстоўваецца хутчэйшы метад для канвертавання ў UTF-8;
- Цюркскія лакалі UTF-8 зараз падтрымліваюцца без праблем;
- Выключана выкарыстанне макраса opASSIGN з ядра;
Функцыянал, які быў выдалены, і несумяшчальныя змены:
- Выдалены модулі: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Раздзяляльнікі шаблонаў зараз павінны быць графемамі;
- Раздзяляльнікі зараз павінны быць графемамі;
- Некаторыя раней састарэлыя спосабы выкарыстання неэкранаванай левай дужкі "{" у шаблонах рэгулярных выразаў зараз забароненыя;
- Прызначэнне ненулявога значэння зменнай $[ (індэкс першага элемента масіва) зараз фатальна;
- Раней састарэлыя sysread()/syswrite() пры апрацоўцы :utf8 зараз фатальныя.
- my() у ілжывых умовах зараз забаронена;
- Лічыцца састарэлым $* (зменная выкарыстоўвалася для ўключэння пошуку шматрадковых адпаведнікаў і была выдаленая ў Perl v5.10.0) і $# (зменная выкарыстоўвалася для фарматавання выводных лікаў і была выдаленая ў Perl v5.10.);
- Лічыцца састарэлым некваліфікаванае выкарыстанне dump();
- Выдалена File::Glob::glob();
- pack() больш не можа вяртаць некарэктны UTF-8;
- Любы набор лічбаў у агульным скрыпце дапусцім у скрыпце, выкананым іншым скрыптам;
- JSON::PP па змаўчанні ўключае allow_nonref;
Састарэлы функцыянал:
- Цяпер нельга ў кодзе XS выкарыстоўваць розныя макрасы, якія апрацоўваюць UTF-8;
Крыніца: linux.org.ru