ËshtĂ« nĂ« dispozicion gjuha e programimit Perl 5.36.0

Pas njĂ« vit zhvillimi, u publikua lĂ«shimi i degĂ«s sĂ« re stabile tĂ« gjuhĂ«s sĂ« programimit Perl — 5.36. GjatĂ« pĂ«rgatitjes sĂ« kĂ«tij versioni u ndryshuan rreth 250 mijĂ« rreshta kodi, ndryshimet preken 2000 skedarĂ« dhe nĂ« zhvillim morĂ«n pjesĂ« 82 zhvillues.

Dega 5.36 u publikua nĂ« pĂ«rputhje me planin e miratuar nĂ«ntĂ« vjet mĂ« parĂ«, qĂ« parashikon lĂ«shimin e degĂ«ve tĂ« reja stabile çdo vit dhe lĂ«shime korigjues — çdo tre muaj. Rreth njĂ« muaj mĂ« vonĂ« pritet tĂ« lĂ«shohet lĂ«shimi i parĂ« korigjues Perl 5.36.1, i cili do tĂ« rregullojĂ« gabimet mĂ« tĂ« rĂ«ndĂ«sishme tĂ« zbuluara gjatĂ« zbatimit tĂ« Perl 5.36.0. NĂ« tĂ« njĂ«jtĂ«n kohĂ« me daljen e Perl 5.36 u ndal mbĂ«shtetja pĂ«r degĂ«n 5.32, pĂ«r tĂ« cilĂ«n nĂ« tĂ« ardhmen mund tĂ« lĂ«shohen pĂ«rditĂ«sime vetĂ«m nĂ« rast tĂ« problemeve kritike me sigurinĂ«. Po ashtu, ka filluar procesi i zhvillimit tĂ« degĂ«s eksperimentale 5.37, mbi tĂ« cilĂ«n nĂ« maj ose qershor 2023 do tĂ« formohet njĂ« lĂ«shim stabil Perl 5.38, nĂ«se nuk merret njĂ« vendim pĂ«r tĂ« kaluar nĂ« numĂ«rimin 7.x.

Ndryshimet kryesore:

  • ËshtĂ« stabilizuar dhe tani Ă«shtĂ« e disponueshme duke treguar pragmĂ«n «use v5.36» mbĂ«shtetje pĂ«r nĂ«nshkrimet e funksioneve, duke lejuar pĂ«rcaktimin e qartĂ« tĂ« listĂ«s sĂ« variablave qĂ« pĂ«rdoren nĂ« funksion dhe automatizimin e operacioneve tĂ« verifikimit dhe caktimit tĂ« vlerave nga asorti i parametrave hyrĂ«s. PĂ«r shembull, kodi qĂ« pĂ«rdorej mĂ« parĂ«: sub foo { die «Prej shumĂ« argumentesh pĂ«r nĂ«nshkrimin» pĂ«rveç se @_ >= 2; die «Prej tĂ« paktĂ« argumentesh pĂ«r nĂ«nshkrimin» pĂ«rveç se @_ <= 2; my($left, $right) = @_; return $left + $right; }

    kur përdoren nënshkrimet mund të zëvendësohet me:

    sub foo ($left, $right) { return $left + $right; }

    Kur thirret foo me një numër argumentesh të ndryshëm nga dy, interpreti do të nxjerrë një gabim. Në listë mbështetet gjithashtu variabla speciale «$», e cila lejon anashkalimin e disa argumenteve, për shembull, «sub foo ($left, $, $right)» do të lejojë kopjimin në variablat vetëm të argumentit të parë dhe të tretë, duke kërkuar që të tre argumentet të dërgohen në funksion.

    Sintaksa e nënshkrimeve gjithashtu lejon përcaktimin e argumenteve jo-obligatore dhe caktimin e vlerave që përdoren si standard në rast të mungesës së një argumenti. Për shembull, duke specifikuar «sub foo ($left, $right = 0)» argumenti i dytë bëhet jo-obligator dhe në rastin e mungesës së tij kalon vlerën 0. Në operacionin e caktimit mund të përcaktohen shprehje të rastësishme, duke përfshirë përdorimin e variablave të tjerë nga lista ose variablave globalë. Përcaktimi i një variabli hash ose array (p.sh., «sub foo ($left, @right)») do të çojë në mundësinë e dërgimit të një ose më shumë argumenteve.

  • NĂ« funksionet e shpallura duke pĂ«rdorur nĂ«nshkrime, mbĂ«shtetje pĂ«r caktimin shtesĂ« tĂ« parametrave nga lista «@_» Ă«shtĂ« shpallur eksperimentale dhe do tĂ« sjellĂ« njĂ« paralajmĂ«rim (paralajmĂ«rimi shfaqet vetĂ«m nĂ«se @_ pĂ«rdoret nĂ« funksionet e shpallura duke pĂ«rdorur sintaksĂ«n e re). PĂ«r shembull, do tĂ« jepet njĂ« paralajmĂ«rim pĂ«r funksionin: use v5.36; sub f ($x, $y = 123) { say «Argumenti i parĂ« Ă«shtĂ« $_[0]»; }
  • ËshtĂ« stabilizuar dhe e disponueshme duke treguar pragmĂ«n «use v5.36» operatori infiks «isa» pĂ«r tĂ« kontrolluar nĂ«se objekti Ă«shtĂ« njĂ« instancĂ« e klasĂ«s sĂ« caktuar ose njĂ« klase qĂ« e trashĂ«gon atĂ«. PĂ«r shembull: if( $obj isa Package::Name ) { 
 }
  • Duke treguar pragmĂ«n «use v5.36» Ă«shtĂ« aktivizuar trajtimi i paralajmĂ«rimeve (aktivizuar mĂ«nyra «use warnings»).
  • Duke treguar pragmĂ«n «use v5.36» Ă«shtĂ« çaktivizuar mbĂ«shtetja pĂ«r notacionin e tĂ«rthortĂ« tĂ« thirrjes sĂ« objekteve («feature indirect») — njĂ« mĂ«nyrĂ« e vjetruar pĂ«r thirrjen e objekteve, ku nĂ« vend tĂ« «->» pĂ«rdoret njĂ« hapĂ«sirĂ« («method $object @param» nĂ« vend tĂ« «$object->$method(@param)»). PĂ«r shembull, nĂ« vend tĂ« «my $cgi = new CGI» duhet tĂ« pĂ«rdoret «my $cgi = CGI->new».
  • Duke treguar pragmĂ«n «use v5.36» Ă«shtĂ« çaktivizuar mbĂ«shtetja pĂ«r simulimin e matricave dhe hash-eve shumĂ«-dimensionale nĂ« stilin Perl 4 («feature multidimensional»), duke lejuar pĂ«rkthimin e caktimit tĂ« disa çelĂ«save nĂ« njĂ« array ndĂ«rmjetĂ«sor (p.sh., «$hash{1, 2}» u transformua nĂ« «$hash{join($;, 1, 2)}»).
  • Duke treguar pragmĂ«n «use v5.36» Ă«shtĂ« çaktivizuar mbĂ«shtetja pĂ«r mekanizmĂ«n eksperimentale tĂ« Branching («feature switch»), e ngjashme me operatorĂ«t switch dhe case (nĂ« Perl pĂ«rdoren fjalitĂ« kyçe given dhe when). PĂ«r tĂ« pĂ«rdorur kĂ«tĂ« mundĂ«si, duke filluar nga Perl 5.36 duhet tĂ« specifikohet qartĂ« ‘use feature «switch»‘, dhe me specifikimin «use version» kjo nuk do tĂ« aktivizohet mĂ« automatikisht.
  • ËshtĂ« stabilizuar dhe e disponueshme si standard mbĂ«shtetja pĂ«r klasat e tjera tĂ« simboleve nĂ« kllapĂ« brenda shprehjeve tĂ« rregullta. Kjo mundĂ«si lejon pĂ«rshtatjen me rregulla tĂ« pĂ«rmirĂ«suara pĂ«r ndĂ«rprerje, pĂ«rjashtim dhe bashkim grupesh simbole. PĂ«r shembull, ‘[A-Z — W]’ pĂ«rfshin simbolet nga A deri nĂ« Z pĂ«rveç W.
  • PjesĂ«risht Ă«shtĂ« stabilizuar dhe suporti pĂ«r operacionet "(?", "( )", "{ }" dhe "[ ]" tani Ă«shtĂ« i aksesueshĂ«m si standard, duke lejuar pĂ«rdorimin e simboleve "« »", "“ ”" etj. PĂ«r shembull, "qr«pat»".
  • Thirrja e funksionit sort pa argumente Ă«shtĂ« e ndaluar dhe tani do tĂ« shkaktojĂ« njĂ« gabim. @a = sort @empty; # do tĂ« vazhdojĂ« tĂ« punojĂ« @a = sort; # do tĂ« dalĂ« njĂ« gabim @a = sort (); # do tĂ« dalĂ« njĂ« gabim
  • NjĂ« flamur i ri i komandĂ«s nĂ« vijĂ« "-g" Ă«shtĂ« propozuar, duke pĂ«rfshirĂ« modalitetin e ngarkimit tĂ« skedarit tĂ« tĂ«rĂ« nĂ« vend qĂ« rresht pas rreshti. Veprimi i flamurit Ă«shtĂ« i ngjashĂ«m me shĂ«nimin "-0777".
  • MbSupportimi i specifikimit Unicode Ă«shtĂ« pĂ«rditĂ«suar nĂ« versionin 14.0.
  • JanĂ« siguruar trajtime tĂ« menjĂ«hershme pĂ«r pĂ«rjashtimet lidhur me llogaritjet me pikĂ« tĂ« zakonshme (SIGFPE), tĂ« ngjashme me trajtimin e sinjaleve tĂ« tjera emergjente, siç Ă«shtĂ« SIGSEGV, duke lejuar lidhjen e trajtuesve tĂ« personalizuar pĂ«r sinjalin SIGFPE pĂ«rmes $SIG{FPE}, pĂ«r shembull, qĂ« japin numrin e rreshtit ku ka ndodhur problemi.
  • JanĂ« pĂ«rmirĂ«suar versionet e modulit qĂ« pĂ«rfshihen nĂ« paketĂ«n bazĂ«.
  • JanĂ« shtuar optimizime tĂ« performancĂ«s. ËshtĂ« ofruar mundĂ«sia e ruajtjes mĂ« efikase tĂ« çelsojve pĂ«r hash tĂ« mĂ«dha, pa pĂ«rdorimin e tabelave tĂ« pĂ«rbashkĂ«ta tĂ« vargjeve. Ka njĂ« rritje tĂ« konsiderueshme nĂ« performancĂ«n e krijimit tĂ« vlerave tĂ« reja skalarĂ«, pĂ«r shembull, kodi nĂ« vazhdim tani ekzekutohet deri nĂ« 30% mĂ« shpejt: $str = “A” x 64; pĂ«r (0..1_000_000) { @svs = split //, $str }
  • NĂ« kodin e interpretuesit ka filluar pĂ«rdorimi i disa konstruksioneve tĂ« pĂ«rcaktuara nĂ« standardin C99. Tani pĂ«r ndĂ«rtimin e Perl kĂ«rkohet njĂ« kompilator qĂ« mbĂ«shtet C99. ËshtĂ« ndĂ«rprerĂ« mbĂ«shtetja pĂ«r ndĂ«rtimin nĂ« versionet e vjetra tĂ« MSVC++ (deri nĂ« VC12). ËshtĂ« shtuar mbĂ«shtetja pĂ«r ndĂ«rtimin nĂ« Microsoft Visual Studio 2022 (MSVC++ 14.3).
  • ËshtĂ« ndĂ«rprerĂ« mbĂ«shtetja pĂ«r platformat AT&T UWIN, DOS/DJGPP dhe Novell NetWare.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster