Perl 7 sil de evolúsje fan Perl 5 naadloos trochgean sûnder efterútkompatibiliteit te brekken

De Perl Project Governing Council sketste plannen foar fierdere ûntwikkeling fan 'e Perl 5 branch en de oprjochting fan in Perl 7 branch. kompatibiliteit is nedich om kwetsberens te reparearjen. De Ried konkludearre ek dat de taal evoluearje moat en nije funksjes yntinsiver befoardere wurde moatte, wylst opkommende ynnovaasjes makliker te berikken wurde en it oannimmen stimulearje.

Oars as de orizjinele yntinsjes om wizigingen dy't efterútkompatibiliteit brekke, standert op te nimmen yn 'e Perl 7-tûke, is it nije plan om de Perl 5-tûke stadichoan oer te setten yn Perl 7 sûnder efterútkompatibiliteit te brekken mei besteande koade. De Perl 7.0-release sil konseptueel net oars wêze fan 'e folgjende Perl 5.xx-tûke.

De ûntwikkeling fan nije releases fan Perl 5 sil trochgean as earder - nije funksjes tafoege oan 'e tûke dy't net kompatibel binne mei de âlde koade sille, lykas earder, allinich opnommen wurde as it pragma "gebrûk ferzje" of "funksje funksje brûke" eksplisyt spesifisearre is yn de koade. Bygelyks, Perl 5.010 yntrodusearre in nij kaaiwurd "sizze", mar sûnt besteande koade koe brûke funksjes neamd "sizze", stipe foar it nije kaaiwurd waard ynskeakele allinnich troch eksplisyt spesifisearje de "gebrûk funksje 'sizze'" pragma.

Nije syntaksis tafoege oan 'e taal, dy't as ferwurke yn eardere releases liede ta in flater, wurdt fuortendaliks beskikber sûnder de needsaak om spesjale pragma's op te jaan. Bygelyks, Perl 5.36 sil in ferienfâldige syntaksis yntrodusearje foar it ferwurkjen fan meardere listwearden tagelyk ("foreach my ($key, $value) (%hash) {") dy't daliks beskikber is, sels yn koade sûnder de "gebrûk" v5.36” pragma.

Yn syn hjoeddeistige foarm brûkt Perl 5.36 it "gebrûk v5.36" pragma om 13 ynteroperabiliteitsbrekkende funksjes yn te skeakeljen ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' en 'unicode_strings'), skeakelje de "brûk strikt" en "brûk warskôgings" modus standert yn en skeakelje stipe út foar de legacy yndirekte notaasje foar objekten oanroppe (as ynstee fan "- >" in spaasje brûkt) en Perl 4-styl multydimensionale arrays en hashes ("$hash{1, 2}").

Wannear't genôch feroarings hawwe sammele, ynstee fan de folgjende release fan Perl 5.x, in ferzje fan Perl 7.0 wurdt oanmakke, dat sil wurden in soarte fan steat momintopname, mar sil bliuwe folslein efterút kompatibel mei Perl 5. Om feroarings en ynstellings ynskeakelje dy't kompatibiliteit brekke, moatte jo it pragma "gebrûk v7" eksplisyt tafoegje oan 'e koade. . Dy. koade mei it "gebrûk v7" pragma kin wurde behannele as "moderne Perl", wêryn kompatibiliteit-brekkende taalferoarings beskikber binne, en sûnder - "konservative Perl", dy't folslein efterút kompatibel bliuwt mei eardere releases.

Boarne: opennet.ru

Add a comment