Webbplatssökning

Perl 5.40 programmeringsspråk släppt, här är vad som är nytt


Perl 5.40-programmeringsspråket introducerar ett nytt CLASS-nyckelord, förbättrad felhantering med try/catch, :reader-attribut för fältvariabler och mer.

Den nyss släppta helt nya Perl 5.40 erbjuder kärnförbättringar, säkerhetsuppdateringar och förändringar i det populära skriptspråket, och bygger vidare på dess robusta funktioner från den föregående versionen 5.38.

Den här uppdateringen introducerar nya funktioner, optimerar de befintliga och åtgärdar betydande säkerhetssårbarheter. Här är mer om det i detalj..

Vad är nytt i Perl 5.40-programmeringsspråket

En av de mest framträdande funktionerna i Perl 5.40 är införandet av nyckelordet __CLASS__. Denna nya tillägg gör det möjligt med mer exakt hämtning av klassnamn inom klassbaserade sammanhang som metoder och fältinitiatorer. Det ger en runtime-medveten klassreferens, vilket är särskilt användbart under konstruktörsexekveringar där “$self” inte är åtkomligt.

Dessutom kan Perl-programmerare nu använda :reader-attributet för klassfältvariabler för att automatiskt generera åtkomstmetoder, vilket förenklar koden och förbättrar läsbarheten. Uppdateringen inkluderar också tillåtelsen av mellanslag i kommandoradsalternativet -M, vilket gör det i linje med det befintliga beteendet för -I-alternativet.

En betydande syntaxförbättring ses med introduktionen av ^^-operatorn för logisk xor, vilket fullbordar Perls uppsättning av logiska operatorer. Under tiden har funktioner som try/catch-block och iteration över flera värden med for gått från experimentella till stabila, vilket indikerar mognad i deras implementering och pålitlighet.

På säkerhetssidan åtgärdar Perl 5.40 betydande sårbarheter, inklusive CVE-2023-47038, som hanterar ett buffertöverflödesproblem, och CVE-2023-47039, som löser en risk för binär kapning på Windows-system.

När det gäller inkompatibilitet och avvecklingar introducerade uppdateringen förändringar som kan påverka befintliga skript, inklusive justeringar av reset EXPR-funktionen, som nu triggar 'set magic' på skalärer, vilket potentiellt kan påverka gamla skript där det tidigare inte hade någon effekt.

Dessutom fortsätter Perl att fasa ut funktioner och syntax som kan leda till tvetydighet eller fel, såsom att tolka klassnamn som filhandtag.

Perl 5.40 innehåller också uppdateringar för ett brett utbud av moduler, från "Archive::Tar" till "IO::Socket::IP", tillsammans med inkluderingen av nya moduler som "Term::Table" och "Test2::Suite" i Perl-kärnan, vilket minskar beroenden för modultestning på CPAN.

Slutligen erbjuder den nya versionen prestandaförbättringar, inklusive optimerade negationsoperationer och bättre hantering av generiska TARGMY-optimeringar, vilket kan avsevärt påskynda exekveringstider för specifika operationer.

Utvecklare uppmanas att hänvisa till Perl-dokumentationen och communityresurser för en detaljerad genomgång av alla ändringar och för ytterligare information. Här är meddelandet; du kan se de viktigaste skillnaderna från den tidigare versionen, 5.38, i detalj här.