Bydd Perl 7 yn parhau ag esblygiad Perl 5 yn ddi-dor heb dorri cydnawsedd yn ôl

Amlinellodd Cyngor Llywodraethu Prosiect Perl gynlluniau ar gyfer datblygu cangen Perl 5 ymhellach a chreu cangen Perl 7. Yn ystod y trafodaethau, cytunodd y Cyngor Llywodraethu nad yw'n dderbyniol torri cydnawsedd â chod a ysgrifennwyd eisoes ar gyfer Perl 5, oni bai ei fod yn torri. mae angen cydnawsedd i drwsio gwendidau. Daeth y Cyngor i'r casgliad hefyd y dylai'r iaith esblygu ac y dylai nodweddion newydd gael eu hyrwyddo'n fwy dwys, tra'n ei gwneud yn haws cael gafael ar ddatblygiadau newydd ac annog mabwysiadu.

Yn wahanol i'r bwriadau gwreiddiol o ganiatáu i newidiadau sy'n torri'n ôl gydnaws gael eu cynnwys yn ddiofyn yng nghangen Perl 7, y cynllun newydd yw trosglwyddo cangen Perl 5 yn raddol i Perl 7 heb dorri'n ôl cydnawsedd â'r cod presennol. Yn gysyniadol ni fydd datganiad Perl 7.0 yn wahanol i'r gangen Perl 5.xx nesaf.

Bydd datblygiad datganiadau newydd o Perl 5 yn parhau fel o'r blaen - bydd nodweddion newydd a ychwanegir at y gangen sy'n anghydnaws â'r hen god yn cael eu cynnwys, fel o'r blaen, dim ond os yw'r pragma “defnyddio fersiwn” neu “defnydd nodwedd nodwedd” wedi'i nodi'n benodol yn y cod. Er enghraifft, cyflwynodd Perl 5.010 allweddair newydd "dweud", ond gan y gallai cod presennol ddefnyddio swyddogaethau o'r enw "dweud", dim ond trwy nodi'n benodol y pragma "defnyddio nodwedd 'dweud'" y galluogwyd cefnogaeth i'r allweddair newydd.

Mae cystrawen newydd wedi'i hychwanegu at yr iaith, a arweiniodd at wall o'i phrosesu mewn datganiadau blaenorol, ar gael ar unwaith heb fod angen nodi pragmâu arbennig. Er enghraifft, bydd Perl 5.36 yn cyflwyno cystrawen wedi'i symleiddio ar gyfer prosesu gwerthoedd rhestr lluosog ar unwaith (“foreach my ($key, $value) (% hash) {”) a fydd ar gael ar unwaith, hyd yn oed yn y cod heb y “use v5.36” pragma.

Yn ei ffurf bresennol, mae Perl 5.36 yn defnyddio'r "defnyddio v5.36" pragma i alluogi 13 nodwedd sy'n torri ar ryngweithredu ('dweud', 'cyflwr', 'current_sub', 'fc', 'lexical_subs', 'llofnodion', 'isa' ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' ac 'unicode_strings'), galluogi'r moddau “defnyddio llym” a “defnyddio rhybuddion” yn ddiofyn ac analluogi cymorth ar gyfer y hen nodiant anuniongyrchol ar gyfer galw gwrthrychau (pan yn lle "->" yn defnyddio gofod) a rhesi a hashes aml-ddimensiwn arddull Perl 4 ("$hash{1, 2}").

Pan fydd digon o newidiadau wedi cronni, yn lle'r datganiad nesaf o Perl 5.x, bydd fersiwn o Perl 7.0 yn cael ei gynhyrchu, a fydd yn dod yn fath o giplun cyflwr, ond a fydd yn parhau i fod yn gwbl gydnaws yn ôl â Perl 5. Er mwyn galluogi newidiadau a gosodiadau sy'n torri cydnawsedd, bydd angen i chi ychwanegu'r pragma “defnyddio v7” yn benodol i'r cod. . Y rhai. gellir trin cod gyda'r pragma "use v7" fel "Perl modern", lle mae newidiadau iaith sy'n torri cydnawsedd ar gael, a heb - "Perl ceidwadol", a fydd yn parhau i fod yn gwbl gydnaws yn ôl â datganiadau blaenorol.

Ffynhonnell: opennet.ru

Ychwanegu sylw