Perl 5.36.0 forritunarmál í boði

Eftir árs þróun hefur útgáfa nýrrar stöðugrar greinar Perl forritunarmálsins - 5.36 - verið gefin út. Við undirbúning nýju útgáfunnar var um 250 þúsund línum af kóða breytt, breytingarnar höfðu áhrif á 2000 skrár og 82 forritarar tóku þátt í þróuninni.

Útibú 5.36 var gefið út í samræmi við fasta þróunaráætlun sem samþykkt var fyrir níu árum, sem felur í sér útgáfu nýrra hesthúsagreina einu sinni á ári og leiðréttingar á þriggja mánaða fresti. Eftir um það bil mánuð er áætlað að gefa út fyrstu leiðréttingarútgáfuna af Perl 5.36.1, sem mun leiðrétta mikilvægustu villurnar sem komu fram við innleiðingu Perl 5.36.0. Samhliða útgáfu Perl 5.36, var stuðningur við 5.32 útibúið hætt, þar sem framtíðaruppfærslur verða aðeins gefnar út ef mikilvæg öryggisvandamál koma í ljós. Ferlið við að þróa tilraunagrein 5.37 er einnig hafið, á grundvelli þess verður stöðug útgáfa af Perl 2023 mynduð í maí eða júní 5.38, nema ákveðið verði að skipta yfir í númer 7.x.

Helstu breytingar:

  • Stuðningur við aðgerðaundirskrift hefur verið stöðugur og er nú fáanlegur þegar þú tilgreinir „nota v5.36“ pragma, sem gerir þér kleift að skilgreina skýrt listann yfir breytur sem notaðar eru í aðgerðinni og gera sjálfvirkar aðgerðir til að athuga og úthluta gildum úr fylki af breytum innkomnar breytur. Til dæmis, áður notaður kóði: sub foo { die "Of mörg rök fyrir undirrútínu" nema @_ >= 2; deyja "Of fá rök fyrir undirrútínu" nema @_ <= 2; my($left, $right) = @_; skila $vinstri + $hægri; }

    þegar undirskrift er notuð er hægt að skipta henni út fyrir:

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

    Ef þú kallar foo með fleiri en tveimur rökum mun túlkurinn kasta villu. Listinn styður einnig sérstaka breytu "$", sem gerir þér kleift að hunsa sum rökin, til dæmis, "sub foo ($left, $, $right)" gerir þér kleift að afrita aðeins fyrstu og þriðju rökin í breytur , á meðan nákvæmlega þrír verða að vera sendar til fallarviðfangsins.

    Undirskriftarsetningafræðin gerir þér einnig kleift að tilgreina valfrjáls rök og tilgreina sjálfgefin gildi ef rök vantar. Til dæmis, með því að tilgreina „sub foo ($left, $right = 0)“ verða önnur rökin valfrjáls og ef hún er ekki til fellur gildið 0. Í úthlutunaraðgerðinni er hægt að tilgreina handahófskenndar tjáningar, þar á meðal að nota aðrar breytur af listanum eða alþjóðlegum breytum. Ef tilgreint er kjötkássa eða fylki í stað breytu (til dæmis "sub foo ($left, @right)") mun leyfa einum eða fleiri rökum að fara framhjá.

  • Í föllum sem lýst er yfir með undirskriftum er stuðningur við valfrjálsa færibreytuúthlutun úr "@_" fylkinu lýst yfir tilraunastarfsemi og mun leiða til viðvörunar (viðvörunin er aðeins gefin út ef @_ er notað í föllum sem lýst er yfir með nýju setningafræðinni). Til dæmis mun viðvörun birtast fyrir aðgerðina: nota v5.36; sub f ($x, $y = 123) { segðu "Fyrstu rökin eru $_[0]"; }
  • Stöðugt og tiltækt þegar tilgreint er "nota v5.36" pragma, innsetningaroperator "isa" til að athuga hvort hlutur sé tilvik af tilgreindum flokki eða flokkur sem er fenginn úr honum. Til dæmis: if( $obj isa Package::Name ) { … }
  • Þegar „nota v5.36“ pragma er tilgreint er viðvörunarvinnsla virkjuð („nota viðvaranir“ stillingin er virkjuð).
  • Þegar „nota v5.36“ pragmatið er tilgreint, er stuðningur við óbeina nótnaskrift fyrir að kalla hluti ("feature indirect") óvirkur - úrelt leið til að hringja í hluti, þar sem bil er notað í stað „->“ (“aðferð $ hlut @param" í stað "$object-> $method(@param)"). Til dæmis, í stað „my $cgi = new CGI“ þarftu að nota „my $cgi = CGI->new“.
  • Þegar „nota v5.36“ pragma er tilgreint, er stuðningur við að líkja eftir fjölvíða fylki og kjötkássa í Perl 4 stílnum („eiginleika fjölvídd“) óvirk, sem gerir kleift að þýða vísbendingu um nokkra lykla yfir í millifylki (til dæmis „ $hash{1, 2}") var breytt í "$hash{join($;, 1, 2)}").
  • Þegar „nota v5.36“ pragma er tilgreint, er stuðningur við tilraunagreinunarkerfi („eiginleikarofi“), svipað og rofi og tilviksyfirlýsingar, óvirk (Perl notar uppgefið og hvenær leitarorð). Til að nota þennan eiginleika, frá og með Perl 5.36, þarftu að tilgreina sérstaklega „nota eiginleika „switch““ og þegar þú tilgreinir „nota útgáfu“ verður það ekki lengur sjálfkrafa virkt.
  • Stuðningur við viðbótarstafaflokka í hornklofa innan venjulegra segða hefur verið stöðugur og er sjálfgefið tiltækur. Eiginleikinn gerir þér kleift að framkvæma samsvörun með því að nota háþróaðar reglur um gatnamót, útilokun og sameiningu stafasetta. Til dæmis, '[A-Z - W]' - stafir frá A til Ö að undanskildum W.
  • Stuðningur við aðgerðirnar "(?", "( )", "{ }" og "[ ]" er að hluta til stöðugur og tiltækur sjálfgefið; þú getur notað táknin "" "", "" "", osfrv. Til dæmis , "qr" klappa "".
  • Það er bannað að kalla flokkunaraðgerðina án röksemda, sem mun nú leiða til villu. @a = flokka @tómt; # mun halda áfram @a = flokka; # villa verður prentuð @a = sort(); # villa verður prentuð
  • Nýtt skipanalínufáni "-g" hefur verið lagt til, sem gerir kleift að hlaða alla skrána í heild, frekar en línu fyrir línu. Virkni fánans er svipuð og merkingunni „-0777“.
  • Stuðningur við Unicode forskriftina hefur verið uppfærður í útgáfu 14.0.
  • Veitir tafarlausa meðhöndlun á fljótandi punktaundantekningum (SIGFPE) svipað og aðrar viðvaranir eins og SIGSEGV, sem gerir þér kleift að binda þína eigin meðhöndlun fyrir SIGFPE í gegnum $SIG{FPE}, til dæmis að gefa út línunúmerið þar sem vandamálið kom upp.
  • Uppfærðar útgáfur af einingum sem fylgja grunnpakkanum.
  • Bætt við hagræðingu afkasta. Möguleikinn á að geyma stóra kjötkássalykla á skilvirkari hátt án þess að nota sameiginlegar strengjatöflur hefur verið veittur. Frammistaðan við að búa til ný kvarðagildi hefur verið bætt verulega, til dæmis keyrir eftirfarandi kóði nú 30% hraðar: $str = "A" x 64; fyrir (0..1_000_000) { @svs = skipt //, $str }
  • Túlkóðinn byrjaði að nota nokkrar af þeim smíðum sem skilgreindar eru í C99 staðlinum. Að byggja Perl þarf nú þýðanda sem styður C99. Stuðningur við byggingu í eldri útgáfum af MSVC++ (fyrir VC12) hefur verið hætt. Bætti við stuðningi við byggingu í Microsoft Visual Studio 2022 (MSVC++ 14.3).
  • Stuðningur við AT&T UWIN, DOS/DJGPP og Novell NetWare palla hefur verið hætt.

Heimild: opennet.ru

Bæta við athugasemd