Na dzisiejszej wirtualnej konferencji dla programistów języka Perl projekt Perl 7, który płynnie kontynuuje rozwój gałęzi Perl 5 bez wprowadzania radykalnych zmian. Perl 7 będzie podobny do wydania , z wyjątkiem innych ustawień domyślnych, które lepiej odpowiadają współczesnej praktyce programistycznej. W pozostałych aspektach Perl 7 pozostanie tym samym Perl 5 i zachowa zgodność z wcześniej opracowanymi aplikacjami.
Znacząca zmiana numeru wersji będzie swoistym rozdzielnikiem przejścia do nowego modelu zwiększania funkcjonalności języka Perl bez odczuwalnych naruszeń wstecznej zgodności.
Zakłada się, że stworzenie Perl 7 pomoże przyciągnąć nowych programistów do korzystania z Perla oraz usprawni proces dodawania istotnych nowych możliwości do języka, zachowując jednocześnie zgodność z bazą kodu istniejących projektów. Numer 7 został wybrany, ponieważ Perl 6 był użyty podczas opracowywania języka, który teraz funkcjonuje pod inną nazwą Raku. Pierwsze wydanie Perl 7 spodziewane jest w przyszłym roku. Gałąź Perl 5.32 stanie się ostatnią w serii Perl 5 i planowane jest jej wsparcie przez 5 do 10 lat.
Najbardziej zauważalną zmianą w Perl 7 będzie domyślne włączenie trybu „„, który oznacza ścisłą kontrolę deklaracji zmiennych, użycia wskaźników symbolicznych oraz przypisywania podprogramów. Użycie „use strict” jest dobrym tonem i jest stosowane przez większość programistów. Podobnie planują domyślnie włączyć obsługę ostrzeżeń („«).
W Perl 7 także planuje się stabilizację oraz domyślne włączenie niektórych już istniejących eksperymentalnych możliwości, takich jak („use feature ‘signatures'”), które pozwalają przy definiowaniu funkcji określić przychodzące argumenty i zautomatyzować kontrolę ich liczby (można będzie pisać „sub foo ($left, $right) {” zamiast „sub foo { my($left, $right) = @_;” ). Planują również domyślnie włączyć wsparcie dla operatora „isa” do sprawdzania, czy obiekt jest instancją podanej klasy lub klasą z niej pochodną („if( $obj isa Package::Name )”, a także operacji postfiksowego dereferencjonowania (postderef) „$sref->$*” zamiast „${ $sref }”, „$aref->@*” zamiast „@{ $aref }” i „$href->%{ … }” zamiast „%$href{ … }”.
Kandydatami do wyłączenia domyślnego w Perl 7 są:
- Pośrednia notacja wywołania obiektów („«) — przestarzały sposób wywoływania obiektów, w którym zamiast „->” używa się spacji („method $object @param” zamiast „$object->$method(@param)”). Na przykład, zamiast „my $cgi = new CGI” zawsze należy używać „my $cgi = CGI->new”.
- Puste deskryptory plików bez deklaracji zmiennych („«) — użycie konstrukcji w postaci „open FH, $file” spowoduje błąd, należy używać „open my $fh, $file”. Zmiana ta nie wpłynie na standardowe deskryptory plików STDIN, STDOUT, STDERR, ARGV, ARGVOUT oraz DATA.
- Fikcyjne tablice wielowymiarowe i hasze w stylu Perl 4 („«).
Na przykład, określenie „$hash{1, 2}” spowoduje błąd, należy używać pośredniej tablicy, na przykład „$hash{join($;, 1, 2)}”. - Deklarowanie prototypów w stylu Perl 4 (należy użyć „use :prototype()”).
W bardziej odległych planach domyślnie przewiduje się włączenie wsparcia dla Unicode, co uwolni programistów od podawania „use utf8” w kodzie. Dla modułów i skryptów, w których wystąpią problemy z nowymi domyślnymi ustawieniami, przewidziano możliwość powrotu do zachowania Perl 5 poprzez dodanie do kodu linii „use compat::perl5”. Niektóre ustawienia również zostaną zachowane i będzie można je zmieniać oddzielnie.
Źródło: opennet.ru
