ProgrammeringssprÄket Perl 5.42 Àr nu tillgÀngligt.

Efter ett Ärs utveckling har den nya stabila versionen av programmeringssprÄket Perl - 5.42 slÀppts. I förberedelserna av den nya utgÄvan Àndrades omkring 280 000 rader kod (exklusive dokumentation och automatiskt genererad kod - 93 000), och Àndringarna berörde 1500 filer. 64 utvecklare deltog i utvecklingen.

Version 5.42 slÀpptes enligt den faststÀllda tidsplanen som godkÀndes för tolv Är sedan, vilket innebÀr att nya stabila versioner slÀpps en gÄng om Äret och korrigerande utgÄvor - var tredje mÄnad. UngefÀr en mÄnad senare planeras den första korrigerande utgÄvan av Perl 5.42.1, dÀr de mest betydande felen som upptÀckts under implementeringen av Perl 5.42.0 kommer att ÄtgÀrdas. Samtidigt som Perl 5.42 slÀpps upphör stödet för version 5.38, för vilken uppdateringar endast kommer att ges i framtiden om kritiska sÀkerhetsproblem upptÀcks. Inom kort pÄbörjas utvecklingen av den experimentella versionen 5.43, som i juni 2026 kommer att leda till en stabil version av Perl 5.44, om det inte fattas beslut om att byta till numrering 7.x.

NyckelÀndringar:

  • Experimentella listbearbetningsoperatorer har lagts till - "any { BLOCK } @list" och "all { BLOCK } @list", som liknar operatorn "grep { BLOCK } @list", men kan endast returnera vĂ€rdena true eller false. Operatorn "all" returnerar "true" om villkoret uppfylls för alla element i listan, medan operatorn "any" returnerar "true" om villkoret uppfylls för minst ett element. Funktionaliteten hos dessa operatorer liknar funktionerna i modulen List::Util, men de inbyggda varianterna Ă€r snabbare och anvĂ€nder mindre minne. use v5.42; use feature 'keyword_all'; no warnings 'experimental::keyword_all'; my @numbers = 
 if ( all { $_ % 2 == 0 } @numbers ) { say "Alla tal Ă€r jĂ€mna"; }
  • För fĂ€lt som definieras inom en klass har attributet ":writer" implementerats, vilket anvĂ€nds för att automatiskt skapa en metod som skriver vĂ€rdet av en variabel till fĂ€ltet för den aktuella instansen av klassen. class Point { field $x :reader :writer :param; field $y :reader :writer :param; } my $p = Point->new( x => 20, y => 40 ); $p->set_x(60);
  • Stöd för att definiera lexikala metoder har lagts till, vilket likt definitionen av lexikala underprogram ("lexical_subs") gör det möjligt att skapa metoder som endast Ă€r tillgĂ€ngliga inom den lexikala synligheten för den block de skapades i. För att skapa sĂ„dana metoder anvĂ€nds uttrycket "my metod_namn".
  • Operatören "->&" har lagts till, vilket möjliggör anrop av underprogram som ligger i den lexikala synligheten, precis som om de Ă€r metoder. Tillsammans med möjligheten att definiera lexikala metoder realiserar den nya operatören funktionalitet som liknar privata metoder.
  • Tilldelningsoperatören "A ^^= B" har lagts till, vilket utför operationen "A = A XOR B".
  • Pragma "source::encoding" har lagts till, vilket definierar kodningen av kĂ€llkoden. För ASCII-kod kan man ange "use source::encoding 'ascii'" (standard), och för UTF-8 "use source::encoding 'utf8'", dĂ€r den senare uttrycket Ă€r ekvivalent med "use utf8". Tolkaren kommer att ge ett fel om UTF-8-tecken förekommer i kod som markerats som ASCII, eller om escape-sekvenser "\x{}" anvĂ€nds i kod som markerats som UTF-8. För att inaktivera kontrollen pĂ„ en del av koden kan vĂ€rdet "use no source::encoding" anvĂ€ndas. I praktiken kan den tillagda pragma vara anvĂ€ndbar för att identifiera fall dĂ€r utvecklaren glömt att ange "use utf8" för kod i UTF-8-kodning.
  • Funktionen chdir() har lagts till namnomrĂ„det "CORE::". Till exempel kan denna funktion nu anropas som "&CORE::chdir($dir)" eller "my $ref = \&CORE::chdir; $ref->($dir)".
  • Uttrycket ‘no feature "apostrophe_as_package_separator"‘ har lagts till för att inaktivera stödet för att anvĂ€nda tecknet » ' » som namnseparator för paket (till exempel "My'Module'Var" istĂ€llet för "My::Module::Var"). Ursprungligen planerades det att stöd för sĂ„dana separatorer skulle tas bort i Perl 5.42, eftersom de tidigare hade deklarerats som förĂ„ldrade, men under diskussioner beslutades det att bevara denna möjlighet som standard, men att förutsĂ€tta ett alternativ för att inaktivera den.
  • Funktionaliteten "switch" och operatören "~~" har Ă„terinförts i de returnerade funktionerna, vilka tidigare hade markerats som förĂ„ldrade och var planerade för borttagning. FrĂ„n och med versionerna Perl 5.36 och 5.42 Ă€r funktionerna "switch" och "~~" som standard inaktiverade vid bindning av kod till sprĂ„kversioner (t.ex. genom att ange "use v5.42"), men kan aktiveras med uttrycken ‘use feature "switch"‘ och ‘use feature "smartmatch"‘.
  • Stöd för Unicode-specifikationen 16.0 har lagts till.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster