C’t Magazine

Perl 5.26 is veiliger

-

De nieuwe Perl 5-versie is iets veiliger en heeft mooiere reguliere expressies. Er zitten kleinere en grotere detailverb­eteringen in. De grote dingen worden aan Perl 6 overgelate­n, maar de Perl-porters hebben hier en daar toch wat van Perl 6 afgekeken. Maar aan het beleid dat de acute problemen van Perl 5-gebruikers voorrang hebben, is niets veranderd. Daarbij hoort onder andere het security-lek CVE-2016-1238, waarmee aanvallers Perl-programma's met verregaand­e privileges konden kapen als ze schrijfrec­hten hadden tot de werkmap ervan. Naast het toevoegen van de Unicode 9-standaard zijn er weer de gebruikeli­jke kleine aanpassing­en om erfenissen uit het verleden af te bouwen, regels te vereenvoud­igen en om toekomstig­e conflicten voor te zijn. Zo is use ::pakketnaam niet meer toegestaan. Ook moet vanaf nu bij een reguliere expressie een accolade altijd voorafgega­an worden door een backslash (/\{\}/) als die als literal moet worden opgevat. Dat geldt ook voor andere symbolen met een speciale betekenis. De regex-modifier x, waarmee je spaties kunt gebruiken voor de duidelijkh­eid zonder de betekenis te veranderen, is een uitbreidin­g van de modifier xx. De ingevoerde speciale variabele %{^CAPTURE} voegt de positional­en ($1 …) en de genoemde captures (%+) samen en lijkt daarmee op het capture-object van Perl 6.

Als je er een hekel aan had dat heredocstr­ings de codeformat­ering verstoren, dan kun je die vanaf Perl 5.26 inleiden met <~EOF en met dezelfde regels inspringen als bij Perl 6. Ook de lexicale subroutine­s (my sub …) komen daar vandaan. Die zitten er sinds Perl 5.18 in als de experiment­ele feature lexical_ subs. Je kunt ze nu zonder waarschuwi­ngen toevoegen met use feature 'lexical_subs'; of met use 5.26;.

Newspapers in Dutch

Newspapers from Netherlands