Perl 7-ը հայտարարեց

Perl լեզվի մշակողների այսօրվա վիրտուալ համաժողովում հայտարարեց Perl 7 նախագիծ, որը սահուն կերպով կշարունակի Perl 5 մասնաճյուղի զարգացումը առանց արմատական ​​փոփոխություններ կատարելու: Perl 7-ը կլինի նմանատիպ թողարկում Perl 5.32.0, բացառությամբ այլ լռելյայն կարգավորումների, որոնք ավելի համահունչ են զարգացման ժամանակակից պրակտիկային: Հակառակ դեպքում, Perl 7-ը կմնա նույնը, ինչ Perl 5-ը և կմնա համատեղելի նախկինում մշակված հավելվածների հետ:

Տարբերակի համարի զգալի փոփոխությունը կգործի որպես մի տեսակ տարանջատող նոր մոդելի անցնելու համար՝ Perl լեզվի ֆունկցիոնալությունը բարձրացնելու համար՝ առանց հետին համատեղելիության նկատելի խախտման:
Ակնկալվում է, որ Perl 7-ի թողարկումը կօգնի նոր ծրագրավորողներին ներգրավել դեպի Perl և կօգնի պարզեցնել լեզվին նշանակալի նոր հնարավորություններ ավելացնելու գործընթացը՝ պահպանելով համատեղելիությունը գոյություն ունեցող նախագծերի կոդերի բազայի հետ: Թիվ 7-ն ընտրվել է, քանի որ Perl 6-ն օգտագործվել է այժմյան լեզուն զարգացնելու համար զարգանում է Ռակու առանձին անվան տակ։ Perl 7-ի առաջին թողարկումը սպասվում է հաջորդ տարի։ Perl 5.32 մասնաճյուղը կլինի վերջինը Perl 5 շարքում և նախատեսվում է աջակցել 5-ից 10 տարի:

Perl 7-ի ամենաուշագրավ փոփոխությունը ներառում է «խիստ«, ինչը ենթադրում է փոփոխականների հայտարարագրերի խիստ ստուգում, խորհրդանշական ցուցիչների և ենթածրագրային առաջադրանքների օգտագործում։ «Օգտագործեք խիստ» օգտագործելը լավ ձև է և օգտագործվում է մշակողների մեծ մասի կողմից: Նմանապես, լռելյայն նրանք նախատեսում են միացնել նախազգուշացման մշակումը («օգտագործել նախազգուշացումները»):

Perl 7-ը նաև հույս ունի կայունացնել և լռելյայն միացնել որոշ արդեն գոյություն ունեցող փորձարարական գործառույթներ, ինչպիսիք են գործառույթի ստորագրություններ («օգտագործել «ստորագրություններ» հատկանիշը»), որը թույլ է տալիս ֆունկցիա սահմանելիս որոշել մուտքային արգումենտները և ավտոմատ կերպով ստուգել դրանց թիվը (կարող եք գրել «sub foo ($left, $right) {» «sub foo {»-ի փոխարեն: my ($ ձախ, $աջ) ) = @_;"): Նրանք նախատեսում են լռելյայն աջակցություն ներառել «isa» օպերատորի համար՝ ստուգելու համար, թե արդյոք օբյեկտը որոշակի դասի օրինակ է, թե դրանից բխող դաս («if( $obj isa Package::Name)», ինչպես նաև հետհղումներից անջատում: գործողություններ (postderef) «$ sref->$*»՝ «${ $sref }»-ի փոխարեն, «$aref->@*»՝ «@{ $aref }»-ի փոխարեն և «$href->%{ ... «%$href{ ... }»-ի փոխարեն

Perl 7-ում լռելյայնորեն անջատված լինելու հավակնորդներն են.

  • Անուղղակի օբյեկտ կանչող նշում ("ոչ մի հատկություն qw (անուղղակի)«) օբյեկտներ կանչելու ժառանգական եղանակ է՝ օգտագործելով «->»-ի փոխարեն բացատ («մեթոդ $object @param»՝ «$object->$method(@param)»-ի փոխարեն): Օրինակ, «my $cgi = new CGI»-ի փոխարեն դուք միշտ կօգտագործեք «my $cgi = CGI->new»:
  • Բաց ֆայլերի նկարագրիչներ՝ առանց փոփոխական հայտարարագրերի ("առանց բառապաշար::filehandle«) - «open FH, $file» նման կոնստրուկցիաների օգտագործումը կհանգեցնի սխալի, դուք պետք է օգտագործեք «open my $fh, $file»: Փոփոխությունը չի ազդի STDIN, STDOUT, STDERR, ARGV, ARGVOUT և DATA ստանդարտ ֆայլերի նկարագրիչների վրա:
  • Perl 4 ոճի կեղծ բազմաչափ զանգվածներ և հեշեր ("ոչ բազմաչափ»):
    Օրինակ՝ «$hash{1, 2}» նշելը կհանգեցնի սխալի, դուք պետք է օգտագործեք միջանկյալ զանգված, օրինակ՝ «$hash{join($;, 1, 2)}»:

  • Նախատիպերի հայտարարում Perl 4 ոճով (դուք պետք է օգտագործեք «use :prototype()»):

Ավելի հեռավոր պլաններում նրանք ակնկալում են լռելյայն միացնել Յունիկոդի աջակցությունը, որը կփրկի ծրագրավորողներին կոդի մեջ «օգտագործել utf8» նշելուց: Մոդուլների և սկրիպտների համար, որոնք խնդիրներ ունեն նոր լռելյայն կարգավորումների հետ, հնարավոր է վերադարձնել Perl 5-ի վարքագիծը՝ կոդի մեջ ավելացնելով «use compat::perl5» տողը: Անհատական ​​կարգավորումները նույնպես կպահվեն և կարող են փոխվել առանձին:

Source: opennet.ru

Добавить комментарий