Perl 5.36.0 programming language iripo

Mushure megore rekuvandudzwa, kuburitswa kwebazi idzva rakagadzikana rePerl programming language - 5.36 - rakabudiswa. Mukugadzirira kuburitswa kutsva, anenge zviuru mazana maviri nemakumi mashanu mitsara yekodhi yakashandurwa, shanduko dzakakanganisa mafaera e250, uye vagadziri ve2000 vakatora chikamu mukuvandudza.

Bazi 5.36 rakaburitswa maererano nehurongwa hwebudiriro hwakatemerwa makore mapfumbamwe apfuura, izvo zvinoreva kuburitswa kwemapazi matsva akatsiga kamwe pagore uye kuburitswa kwekugadzirisa mwedzi mitatu yega yega. Munenge mwedzi, zvakarongwa kusunungura kusunungurwa kwekutanga kwekugadzirisa kwePerl 5.36.1, iyo ichagadzirisa zvikanganiso zvakakosha zvakaonekwa panguva yekushandiswa kwePerl 5.36.0. Pamwe chete nekuburitswa kwePerl 5.36, kutsigirwa kwebazi re5.32 kwakamiswa, izvo zvigadziriso zveramangwana zvinogona kuburitswa chete kana matambudziko akakosha ekuchengetedza akaonekwa. Nzira yekugadzira bazi rekuedza 5.37 yakatangawo, pamusana pekuti kusunungurwa kwakagadzikana kwePerl 2023 kuchaumbwa muna May kana June 5.38, kunze kwekunge sarudzo yaitwa yekuchinja kunhamba 7.x.

Kuchinja kukuru:

  • Tsigiro yemasiginecha ebasa yakagadziriswa uye yave kuwanikwa kana uchitsanangura iyo "shandisa v5.36" pragma, ichikubvumidza kuti utsanangure zvakajeka runyorwa rwezvakasiyana zvinoshandiswa muchiitiko uye otomatiki mashandiro ekutarisa uye kugovera kukosha kubva kune akatevedzana. incoming parameters. Semuenzaniso, kodhi yakamboshandiswa: sub foo {kufa "Kupokana kwakawandisa kune subroutine" kunze kwekunge @_>= 2; kufa "Makakatanwa mashoma ezve subroutine" kunze kwekunge @_ <= 2; yangu($kuruboshwe, $kurudyi) = @_; dzoka $ kuruboshwe + $ kurudyi; }

    kana uchishandisa siginecha, inogona kutsiviwa ne:

    sub foo ($kuruboshwe, $kurudyi) {dzokera $kuruboshwe + $kurudyi; }

    Kana ukadaidza foo nenharo dzinopfuura mbiri, muturikiri anokanda mhosho. Rondedzero yacho inotsigirawo musiyano unokosha β€œ$”, unobvumira kuti usatarise dzimwe nharo, semuenzaniso, β€œsub foo ($kuruboshwe, $, $kurudyi)” zvinokubvumidza kukopa chete yekutanga neyechitatu nharo muzvinyorwa. , nepo matatu chaiwo achifanirwa kupfuudzwa kune iyo basa nharo.

    Iyo siginecha syntax zvakare inobvumidza iwe kuti utaure zvesarudzo nharo uye kududzira default values ​​kana nharo isipo. Semuyenzaniso, nekudoma β€œsub foo ($kuruboshwe, $kurudyi = 0)” chirevo chechipiri chinova chekusarudza uye kana chisipo, kukosha kwapfuura 0. Mukuita basa, unogona kudoma zvirevo, kusanganisira kushandisa mamwe mabhii. kubva pakurongwa kana pasi rose. Kudoma hashi kana array pachinzvimbo chekusiyanisa (semuenzaniso, "sub foo ($left, @right)") zvinobvumira imwe kana dzakawanda nharo kuti dzipfuure.

  • Mumabasa akaziviswa pachishandiswa siginicha, tsigiro yesarudzo yeparameter yekupihwa kubva ku "@_" array inonzi kuyedza uye inozoguma yambiro (yambiro inongopihwa chete kana @_ ikashandiswa mumabasa akaziviswa pachishandiswa syntax itsva). Semuenzaniso, yambiro icharatidzwa kune basa: shandisa v5.36; sub f ($x, $y = 123) {taura "Nharo yekutanga ndeye $_[0]"; }
  • Yakagadzikana uye inowanikwa kana uchitsanangura iyo "shandisa v5.36" pragma, iyo infix opareta "isa" yekutarisa kana chinhu chiri chiitiko chekirasi yakatsanangurwa kana kirasi yakabva kwairi. Semuenzaniso: kana( $obj isa Package::Zita) { ... }
  • Paunenge uchitsanangura iyo "shandisa v5.36" pragma, yambiro kugadzirisa inogoneswa (iyo "shandisa yambiro" modhi inovhurwa).
  • Paunenge uchitsanangura iyo "shandisa v5.36" pragma, tsigiro yezvisina kunanga notation yekufona zvinhu ("feature indirect") inovharwa - nzira yechinyakare yekudaidza zvinhu, umo nzvimbo inoshandiswa pachinzvimbo che "->" (" nzira $ chinhu @param" pachinzvimbo che "$object-> $method(@param)"). Semuenzaniso, panzvimbo ye "my $ cgi = new CGI" unoda kushandisa "my $ cgi = CGI-> itsva".
  • Kana uchitsanangura iyo "shandisa v5.36" pragma, tsigiro yekutevedzera multidimensional arrays uye hashes muPerl 4 style ("feature multidimensional") inovharwa, zvichibvumira chiratidzo chekiyi akati wandei kuti ishandurwe muchikamu chepakati (semuenzaniso, " $hash{1, 2}”) yakashandurwa kuita "$hash{join($;, 1, 2)}").
  • Paunenge uchitsanangura iyo "shandisa v5.36" pragma, tsigiro yekuedza branching mechanism ("feature switch"), yakafanana neshanduko uye zvirevo zvekesi, yakavharwa (Perl inoshandisa yakapihwa uye kana keywords). Kuti ushandise chimiro ichi, kutanga nePerl 5.36, unofanirwa kutsanangura zvakajeka 'shandisa chimiro "chinja"', uye kana ukadoma "shandisa vhezheni", haichagone kugoneswa otomatiki.
  • Tsigiro yemamwe makirasi emavara mumabhuraketi masikweya mukati menguva dzose mataurirwo akagadzikana uye anowanikwa nekusarudzika. Iyo ficha inokutendera iwe kuti uite machisi uchishandisa yakakwira mitemo yemharadzano, kusabvisa, uye mubatanidzwa wemaseti emavara. Semuyenzaniso, '[AZ - W]' - mavara kubva kuA kuenda kuZ kusasanganisa W.
  • Rutsigiro rwezviitwa "(?", "( )", "{ }" uye "[ ]" zvakadzikamiswa zvishoma uye zviripo nekusingaperi; unogona kushandisa zviratidzo "" "", "" "", etc. Semuyenzaniso , "qr"bata "".
  • Kudaidza iyo mhando basa pasina nharo kunorambidzwa, izvo zvino zvinozokonzera kukanganisa. @a = ronga @isina; # ichaenderera @a = rongedza; # kukanganisa kuchadhindwa @a = sort(); # kukanganisa kuchadhindwa
  • Mutsetse mutsva wekuraira mureza "-g" wakatsanangurwa, unogonesa maitiro ekurodha faira rese rose, pane mutsara nemutsetse. Chiito chemureza chakafanana nechiratidzo "-0777".
  • Unicode tsanangudzo yetsigiro yakagadziridzwa kune vhezheni 14.0.
  • Inopa chiriporipo kubata kwezvinoyangarara nzvimbo (SIGFPE) zvakafanana nemamwe maalarm akaita seSIGSEGV, zvichikutendera kuti usunge zvibatiso zvako zveSIGFPE kuburikidza ne$SIG{FPE}, semuenzaniso kuburitsa nhamba yemutsara pakaitika dambudziko.
  • Yakagadziridzwa vhezheni yemamodule inosanganisirwa muiyo basic package.
  • Yakawedzera performance optimizations. Kugona kuchengeta makiyi makuru ehashi zvakanyanya pasina kushandisa matafura etambo akagovaniswa akapihwa. Kuita kwekugadzira mitsva ye scalar values ​​kwakavandudzwa zvakanyanya, semuenzaniso inotevera kodhi ikozvino inomhanya 30% nekukurumidza: $str = "A" x 64; ye(0..1_000_000) {@svs = patsanura //, $str }
  • Ikodhi yemuturikiri yakatanga kushandisa zvimwe zvezvivakwa zvinotsanangurwa muC99 standard. Kuvaka Perl ikozvino kunoda compiler inotsigira C99. Tsigiro yekuvaka mune yekare vhezheni yeMSVC++ (pre-VC12) yakamiswa. Yakawedzera rutsigiro rwekuvaka muMicrosoft Visual Studio 2022 (MSVC++ 14.3).
  • Tsigiro yeAT&T UWIN, DOS/DJGPP uye Novell NetWare mapuratifomu akamiswa.

Source: opennet.ru

Voeg