På den virtuelle konference for Perl-udviklere, der finder sted i dag, et projekt kaldet Perl 7, som glidende vil fortsætte udviklingen af Perl 5 uden radikale ændringer. Perl 7 vil være analog med udgivelsen , bortset fra andre standardindstillinger, der bedre matcher moderne udviklingspraksis. Ellers vil Perl 7 forblive det samme Perl 5 og bevare kompatibiliteten med eksisterende applikationer.
En betydelig versionsændring vil fungere som en overgang til en ny model for at udvide funktionaliteten i Perl uden at bryde den bagudkompatibilitet.
Det forventes, at oprettelsen af Perl 7 vil hjælpe med at tiltrække nye udviklere til Perl og etablere en proces for at tilføje betydelige nye funktioner til sproget, samtidig med at kompatibiliteten med koden fra eksisterende projekter bevares. Nummer 7 er valgt, da Perl 6 blev brugt under udviklingen af sproget, som nu går under navnet Raku. Den første udgivelse af Perl 7 forventes næste år. Perl 5.32-grenen vil blive den sidste i Perl 5-serien og er planlagt til at blive understøttet i 5 til 10 år.
Den mest markante ændring i Perl 7 vil være, at standardindstillingen for "", som indebærer streng kontrol af variabelerklæringer, brug af symbolske referencer og tildeling i underprogrammer. Brug af "use strict" er god skik og anvendes af de fleste udviklere. På samme måde planlægger man at inkludere behandlingen af advarsler som standard ("«).
I Perl 7 forventes det også at stabilisere og inkludere nogle allerede eksisterende eksperimentelle funktioner som standard, såsom ("use feature 'signatures'"), hvilket gør det muligt at definere indkommende argumenter ved funktionsdefinition og automatisere kontrollen af deres antal (man kan skrive "sub foo ($left, $right) {" i stedet for "sub foo { my($left, $right) = @_;"). Man planlægger også at inkludere støtte til operatoren "isa" som standard for at kontrollere, om et objekt er en instans af en bestemt klasse eller en afledt klasse ("if( $obj isa Package::Name )", samt postfix dereferencing-operationer " $sref->$*" i stedet for "${ $sref }", "$aref->@*" i stedet for "@{ $aref }" og "$href->%{ … }" i stedet for "%$href{ … }".
Kandidater til at blive deaktiveret som standard i Perl 7 inkluderer:
- Indirekte notationsmetode til metodeopkald ("«) — en forældet metode til at kalde objekter, hvor der i stedet for «->» bruges et mellemrum («method $object @param» i stedet for «$object->$method(@param)»). For eksempel, i stedet for «my $cgi = new CGI» skal man altid bruge «my $cgi = CGI->new».
- Bare filhåndtag uden variabeldeklarationer (««) — brug af konstruktioner som «open FH, $file» vil føre til fejl, man skal bruge «open my $fh, $file». Ændringen vil ikke påvirke standard filhåndtag STDIN, STDOUT, STDERR, ARGV, ARGVOUT og DATA.
- Fiktive multidimensionale arrays og hasher i Perl 4 stil (««).
For eksempel, at angive «$hash{1, 2}» vil føre til en fejl, man skal bruge et mellem-array, såsom «$hash{join($;, 1, 2)}». - Deklaration af prototyper i Perl 4 stil (man skal bruge «use :prototype()»).
I de mere fjerne planer er der som standard intentioner om at inkludere Unicode-support, hvilket vil befri udviklere fra at angive «use utf8» i koden. For moduler og scripts, der oplever problemer med de nye standardindstillinger, er der mulighed for at genvinde Perl 5-adfærden ved at tilføje linjen «use compat::perl5» i koden. Enkelte indstillinger vil også blive bibeholdt, og de kan ændres individuelt.
Kilde: opennet.ru
