Perl 7 aangekondigd

Op de virtuele conferentie van Perl-taalontwikkelaars van vandaag bekend gemaakt een Perl 7-project dat de ontwikkeling van de Perl 5-tak soepel zal voortzetten zonder radicale veranderingen aan te brengen. Perl 7 zal een vergelijkbare release zijn Perl 5.32.0, met uitzondering van andere standaardinstellingen die meer consistent zijn met moderne ontwikkelingspraktijken. Anders blijft Perl 7 hetzelfde als Perl 5 en blijft het compatibel met eerder ontwikkelde applicaties.

Een aanzienlijke verandering in het versienummer zal fungeren als een soort scheidingsteken voor de overgang naar een nieuw model voor het vergroten van de functionaliteit van de Perl-taal zonder een merkbare schending van achterwaartse compatibiliteit.
Verwacht wordt dat de release van Perl 7 zal helpen nieuwe ontwikkelaars naar Perl te trekken en het proces van het toevoegen van belangrijke nieuwe functies aan de taal te stroomlijnen, terwijl de compatibiliteit met de codebasis van bestaande projecten behouden blijft. Nummer 7 werd gekozen omdat Perl 6 werd gebruikt om de taal te ontwikkelen die nu is ontwikkeld zich onder de aparte naam Raku. De eerste release van Perl 7 wordt volgend jaar verwacht. De Perl 5.32-tak zal de laatste in de Perl 5-serie zijn en zal naar verwachting 5 tot 10 jaar worden ondersteund.

De meest opvallende verandering in Perl 7 is de toevoeging van "streng“, wat een strikte controle van variabele declaraties, het gebruik van symbolische verwijzingen en subroutinetoewijzingen impliceert. Het gebruik van "gebruik strikt" is een goede vorm en wordt door de meeste ontwikkelaars gebruikt. Op dezelfde manier zijn ze standaard van plan waarschuwingsverwerking in te schakelen (“waarschuwingen gebruiken

Perl 7 hoopt ook een aantal reeds bestaande experimentele functies te stabiliseren en standaard in te schakelen, zoals functie handtekeningen (“use feature 'signatures'”), waarmee u, bij het definiëren van een functie, de inkomende argumenten kunt bepalen en het controleren van hun aantal kunt automatiseren (u kunt “sub foo ($left, $right) {” schrijven in plaats van “sub foo { mijn($left, $right) ) = @_;"). Ze zijn van plan om standaard ondersteuning op te nemen voor de operator “isa” om te controleren of een object een instantie is van een opgegeven klasse of een klasse die daarvan is afgeleid (“if( $obj isa Package::Name)”, evenals dereferentie na de fix. bewerkingen (postderef) “$ sref->$*" in plaats van "${ $sref }", "$aref->@*" in plaats van "@{ $aref }" en "$href->%{ ... }" in plaats van "%$href{ ... } "

Kanshebbers om standaard te worden uitgeschakeld in Perl 7 zijn:

  • Indirect object aanroepende notatie ("geen functie qw(indirect)") is een oude manier om objecten aan te roepen, waarbij een spatie wordt gebruikt in plaats van "->" ("method $object @param" in plaats van "$object->$method(@param)"). In plaats van “mijn $cgi = nieuwe CGI” zou u bijvoorbeeld altijd “mijn $cgi = CGI->nieuw” gebruiken.
  • Kale bestandsdescriptors zonder variabele declaraties ("geen bareword::filehandle") - het gebruik van constructies als “open FH, $file” zal tot een fout leiden, je moet “open my $fh, $file” gebruiken. De wijziging heeft geen invloed op de standaard bestandsdescriptors STDIN, STDOUT, STDERR, ARGV, ARGVOUT en DATA.
  • Perl 4-stijl dummy multidimensionale arrays en hashes ("geen multidimensionaal
    Als u bijvoorbeeld “$hash{1, 2}” opgeeft, leidt dit tot een fout; u moet een tussenliggende array gebruiken, bijvoorbeeld “$hash{join($;, 1, 2)}”.

  • Prototypen declareren in Perl 4-stijl (u moet "use :prototype()" gebruiken).

In verder weg gelegen plannen verwachten ze standaard Unicode-ondersteuning in te schakelen, waardoor ontwikkelaars niet langer “use utf8” in de code hoeven op te geven. Voor modules en scripts die problemen hebben met de nieuwe standaardinstellingen is het mogelijk om terug te keren naar het gedrag van Perl 5 door de regel "use compat::perl5" aan de code toe te voegen. Ook individuele instellingen worden opgeslagen en kunnen individueel worden gewijzigd.

Bron: opennet.ru

Voeg een reactie