Ang Perl 7 hapsay nga magpadayon sa pag-uswag sa Perl 5 nga wala maguba ang paatras nga pagkaangay

Ang Perl Project Governing Council naglatid sa mga plano alang sa dugang nga kalamboan sa Perl 5 nga sanga ug sa paghimo sa usa ka Perl 7 nga sanga. Atol sa mga diskusyon, ang Nagamandong Konseho miuyon nga kini dili madawat sa paglapas sa compatibility sa code nga gisulat na alang sa Perl 5, gawas kon paglapas gikinahanglan ang pagkaangay aron ayohon ang mga kahuyangan. Ang Konseho usab mihinapos nga ang pinulongan kinahanglan nga molambo ug ang mga bag-ong mga bahin kinahanglan nga ipasiugda nga mas intensive, samtang naghimo sa mga nag-uswag nga mga inobasyon nga mas sayon ​​nga ma-access ug mag-awhag sa pagsagop.

Dili sama sa orihinal nga mga intensyon sa pagtugot sa mga pagbag-o nga makaguba sa paatras nga pagpaangay nga ilakip pinaagi sa default sa Perl 7 nga sanga, ang bag-ong plano mao ang hinay-hinay nga pagbalhin sa Perl 5 nga sanga ngadto sa Perl 7 nga dili mabungkag ang atraso nga pagkaangay sa kasamtangan nga code. Ang Perl 7.0 nga pagpagawas mahimong konsepto nga walay kalainan gikan sa sunod nga Perl 5.xx nga sanga.

Ang pag-uswag sa mga bag-ong pagpagawas sa Perl 5 magpadayon sama sa kaniadto - ang mga bag-ong bahin nga gidugang sa sanga nga dili uyon sa daan nga code, sama kaniadto, iapil lamang kung ang "paggamit nga bersyon" o "paggamit nga bahin nga bahin" nga pragma tin-aw nga gipiho. sa code. Pananglitan, ang Perl 5.010 nagpaila sa usa ka bag-ong keyword nga "ingon", apan tungod kay ang kasamtangan nga code mahimong mogamit sa mga function nga ginganlan og "say", ang suporta alang sa bag-ong keyword gipalihok lamang pinaagi sa dayag nga pagtino sa "gamit nga bahin 'ingon'" pragma.

Bag-ong syntax nga gidugang sa lengguwahe, nga kung giproseso sa nangaging mga pagpagawas misangpot sa usa ka sayup, mahimong magamit dayon nga wala kinahanglana nga ipiho ang mga espesyal nga pragma. Pananglitan, ang Perl 5.36 magpaila sa usa ka gipasimple nga syntax alang sa pagproseso sa daghang mga kantidad sa lista sa usa ka higayon ("foreach my ($key, $value) (%hash) {") nga magamit dayon, bisan sa code nga wala ang "paggamit v5.36” pragma.

Sa kasamtangan nga porma niini, ang Perl 5.36 naggamit sa "paggamit sa v5.36" pragma aron makahimo sa 13 ka interoperability-breaking features ('ingon', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' ug 'unicode_strings'), i-enable ang "paggamit sa estrikto" ug "paggamit sa mga pasidaan" nga mga mode pinaagi sa default ug pag-disable sa suporta alang sa legacy nga dili direkta nga notasyon alang sa pagtawag sa mga butang (kon imbes nga "- >" naggamit ug luna) ug Perl 4 nga estilo nga multidimensional arrays ug hash ("$hash{1, 2}").

Kung adunay igo nga mga pagbag-o nga natipon, imbis sa sunod nga pagpagawas sa Perl 5.x, usa ka bersyon sa Perl 7.0 ang mabuhat, nga mahimong usa ka klase nga snapshot sa estado, apan magpabilin nga hingpit nga paatras nga nahiuyon sa Perl 5. Aron mahimo ang mga pagbag-o ug setting kana nga break compatibility, kinahanglan nimo nga klaro nga idugang ang "gamit ang v7" pragma sa code. . Mga. code nga adunay "paggamit v7" pragma mahimong isipon nga "modernong Perl", diin ang pagkaangay-paglapas sa mga kausaban sa pinulongan anaa, ug walay - "konserbatibo Perl", nga magpabilin nga bug-os paatras compatible uban sa nangaging mga pagpagawas.

Source: opennet.ru

Idugang sa usa ka comment