Perl 7 annonceret

Ved dagens virtuelle konference for Perl-sprogudviklere annonceret et Perl 7-projekt, der problemfrit vil fortsætte udviklingen af ​​Perl 5-grenen uden at foretage radikale ændringer. Perl 7 vil være en lignende udgivelse Perl 5.32.0, bortset fra andre standardindstillinger, der er mere i overensstemmelse med moderne udviklingspraksis. Ellers forbliver Perl 7 den samme som Perl 5 og forbliver kompatibel med tidligere udviklede applikationer.

En væsentlig ændring i versionsnummer vil fungere som en slags separator for overgangen til en ny model til at øge funktionaliteten af ​​Perl-sproget uden en mærkbar krænkelse af bagudkompatibilitet.
Udgivelsen af ​​Perl 7 forventes at hjælpe med at tiltrække nye udviklere til Perl og hjælpe med at strømline processen med at tilføje væsentlige nye funktioner til sproget og samtidig bevare kompatibiliteten med kodebasen i eksisterende projekter. Nummer 7 blev valgt, fordi Perl 6 blev brugt til at udvikle det sprog, der er nu udvikler sig under det separate navn Raku. Den første udgivelse af Perl 7 forventes næste år. Perl 5.32-grenen bliver den sidste i Perl 5-serien og er planlagt til at blive understøttet i 5 til 10 år.

Den mest bemærkelsesværdige ændring i Perl 7 er inkluderingen af ​​"streng“, hvilket indebærer streng kontrol af variable deklarationer, brug af symbolske pointere og subrutinetildelinger. Brug af "brug streng" er god form og bruges af de fleste udviklere. På samme måde planlægger de som standard at aktivere advarselsbehandling ("bruge advarsler").

Perl 7 håber også at stabilisere og aktivere som standard nogle allerede eksisterende eksperimentelle funktioner, som f.eks funktionssignaturer ("brug funktion 'signaturer'"), som tillader, når du definerer en funktion, at bestemme de indkommende argumenter og automatisere kontrol af deres antal (du kan skrive "sub foo ($left, $right) {" i stedet for "sub foo { min($venstre, $højre) ) = @_;"). De planlægger som standard at inkludere understøttelse af "isa"-operatoren til at kontrollere, om et objekt er en instans af en specificeret klasse eller en klasse afledt af den ("if( $obj isa Package::Name)", samt postfix-dereferencing operationer (postderef) "$ sref->$*" i stedet for "${ $sref }", "$aref->@*" i stedet for "@{ $aref }" og "$href->%{ ... }" i stedet for "%$href{ ... } "

Konkurrenter for at blive deaktiveret som standard i Perl 7 er:

  • Indirekte objektkaldende notation ("ingen funktion qw (indirekte)") er en ældre måde at kalde objekter på ved at bruge et mellemrum i stedet for "->" ("metode $object @param" i stedet for "$object->$method(@param)"). For eksempel, i stedet for "min $cgi = ny CGI" ville du altid bruge "min $cgi = CGI->ny".
  • Bare filbeskrivelser uden variable erklæringer ("ingen bareword::filehandle") - brug af konstruktioner som "åben FH, $fil" vil føre til en fejl, du skal bruge "åbn min $fh, $fil". Ændringen vil ikke påvirke standardfilbeskrivelserne STDIN, STDOUT, STDERR, ARGV, ARGVOUT og DATA.
  • Perl 4 stil dummy multidimensionelle arrays og hashes ("ingen flerdimensionel").
    For eksempel vil angivelse af "$hash{1, 2}" føre til en fejl; du skal bruge et mellemliggende array, for eksempel "$hash{join($;, 1, 2)}".

  • Erklæring af prototyper i Perl 4-stil (du skal bruge "brug :prototype()").

I mere fjerntliggende planer forventer de at aktivere Unicode-understøttelse som standard, hvilket vil spare udviklere fra at angive "brug utf8" i koden. For moduler og scripts, der har problemer med de nye standardindstillinger, er det muligt at vende tilbage til Perl 5 adfærd ved at tilføje linjen "use compat::perl5" til koden. Individuelle indstillinger vil også blive gemt og kan ændres individuelt.

Kilde: opennet.ru

Tilføj en kommentar