Et år etter utgivelsen av Perl 5.28.0 fant utgivelsen sted Perl 5.30.0.
Viktige endringer:
- Lagt til støtte for Unicode versjoner 11, 12 og utkast 12.1;
- Den øvre grensen "n" gitt i det regulære uttrykket kvantifiserer av formen "{m, n}" har blitt doblet til 65534;
- Metategn i Unicode-egenskapsverdispesifikasjoner støttes nå delvis;
- Lagt til støtte for qr'N{name}';
- Perl kan nå kompileres for alltid å bruke lokale trådsikre operasjoner;
- Begrenset variabel lengde versus regulært uttrykksmønster støttes nå eksperimentelt;
- En raskere metode brukes nå for å konvertere til UTF-8;
- Turkic UTF-8-lokaliteter støttes nå uten problemer;
- Fjernet bruken av opASSIGN-makroen fra kjernen;
Funksjonalitet som er fjernet og inkompatible endringer:
- Fjernede moduler: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
- Mønsterskillere skal nå være grafemer;
- Separatorer skal nå være grafemer;
- Noen tidligere utdaterte bruk av den uunngåede venstre parentesen "{" i vanlige uttrykksmønstre er nå forbudt;
- Å tilordne en verdi som ikke er null til $[ (indeksen til det første array-elementet) er nå fatalt;
- Tidligere avviklet sysread()/syswrite() ved håndtering av :utf8 er nå dødelig.
- my() under falske forhold er nå deaktivert;
- Utdatert $* (variabel brukt for å aktivere flerlinjematching og ble fjernet i Perl v5.10.0) og $# (variabel brukt til å formatere utdatanummer og ble fjernet i Perl v5.10.);
- Den ukvalifiserte bruken av dump() er avviklet;
- Fjernet fil::Glob::glob();
- pack() kan ikke lenger returnere ugyldig UTF-8;
- Ethvert sett med tall i et generelt skript er gyldig i et skript utført av et annet skript;
- JSON::PP inkluderer allow_nonref som standard;
Utdatert funksjonalitet:
- Du kan ikke lenger bruke ulike makroer som håndterer UTF-8 i XS-kode;
Kilde: linux.org.ru