Perl 7 tillkÀnnages

PÄ den virtuella utvecklarkonferensen som hÄlls idag om sprÄket Perl annonserades projektet Perl 7, som smidigt kommer att fortsÀtta utvecklingen av Perl 5 utan att göra radikala förÀndringar. Perl 7 kommer att likna utgivningen Perl 5.32.0, med undantag för andra standardinstÀllningar som bÀttre överensstÀmmer med modern utvecklingspraxis. I övrigt kommer Perl 7 att förbli som Perl 5 och behÄlla kompatibiliteten med tidigare utvecklade applikationer.

En betydande versionsÀndring kommer att fungera som en slags grÀnsövergÄng till en ny modell för att öka sprÄkets funktionalitet
utan mÀrkbar brytning av bakÄtkompatibilitet. Det förvÀntas att skapandet av Perl 7 kommer att hjÀlpa till att dra till sig nya utvecklare som anvÀnder Perl och etablera processen för att lÀgga till betydande nya funktioner i sprÄket, samtidigt som kompatibiliteten med kodbasen av befintliga projekt bibehÄlls. Numret 7 valdes eftersom Perl 6 anvÀndes vid utvecklingen av sprÄket, som nu utvecklas gÄr under det separata namnet Raku. Den första utgÄvan av Perl 7 förvÀntas nÀsta Är. Grenen Perl 5.32 kommer att vara den sista i serien Perl 5 och planeras att stödjas i 5 till 10 Är.

Det mest pÄtagliga förÀndringen i Perl 7 blir att aktivera lÀget "strict", som innebÀr strikt kontroll av deklaration av variabler, anvÀndning av symboliska pekare och tilldelning av underprogram. Att anvÀnda "use strict" anses vara god ton och tillÀmpas av de flesta utvecklare. PÄ samma sÀtt planerar man att som standard aktivera hantering av varningar ("use warnings«).

I Perl 7 förvÀntar man sig ocksÄ att stabilisera och som standard inkludera vissa redan existerande experimentella funktioner, som funktionssignaturer ("use feature 'signatures'"), som gör det möjligt att definiera inparametrar vid funktionsdefinition och automatisera kontrollen av deras antal (man kan skriva "sub foo (240;left, 240;right) {" istÀllet för "sub foo { my(240;left, 240;right) = @_;" ). Man planerar ocksÄ att som standard inkludera stöd för operatorn "isa" för att kontrollera om ett objekt Àr en instans av den angivna klassen eller en klass som hÀrstammar frÄn den ("if( $obj isa Package::Name )", samt operationer med postfixavreferensning (postderef) "${sref}->2A" istÀllet för "${ $sref }", "${aref}->@*" istÀllet för "@{ $aref }" och "${href}->%{  }" istÀllet för "%$href{  }".

Kandidater för att stÀngas av som standard i Perl 7 Àr:

  • Indirekt notation för att anropa objekt ("ingen funktion qw(indirekt)«) — en förĂ„ldrad metod för att anropa objekt, dĂ€r istĂ€llet för «->» anvĂ€nds ett mellanslag («metod $object @param» istĂ€llet för «$object->$metod(@param)»). Till exempel, istĂ€llet för «my $cgi = new CGI» mĂ„ste man alltid anvĂ€nda «my $cgi = CGI->new».
  • Rena filbeskrivare utan variabeldeklarationer («ingen bareword::filehandle«) — anvĂ€ndning av konstruktioner som «open FH, $file» kommer att leda till fel, man mĂ„ste anvĂ€nda «open my $fh, $file». Ändringen pĂ„verkar inte standardfilbeskrivarna STDIN, STDOUT, STDERR, ARGV, ARGVOUT och DATA.
  • Fiktiva flerdimensionella arrayer och hashar i Perl 4-stil («ingen multidimensional«).
    Till exempel kommer angivandet av «$hash{1, 2}» att leda till ett fel, man mÄste anvÀnda en mellanliggande array, till exempel «$hash{join($;, 1, 2)}».
  • Deklaration av prototyper i Perl 4-stil (man mĂ„ste anvĂ€nda «use :prototype()»).

I mer avlÀgsna planer för standarden berÀknas stöd för Unicode inbyggt, vilket befriar utvecklare frÄn att behöva ange «use utf8» i koden. För moduler och skript som fÄr problem med de nya standardinstÀllningarna finns möjligheten att ÄtergÄ till Perl 5:s beteende genom att lÀgga till raden «use compat::perl5» i koden. Enskilda instÀllningar kommer ocksÄ att bevaras och kan Àndras separat.

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