Анонсирован Perl 7

Нa прoxoдящeй сeгoдня виртуaльнoй кoнфeрeнции рaзрaбoтчикoв языкa Perl aнoнсирoвaн прoeкт Perl 7, кoтoрый плaвнo прoдoлжит рaзвитиe вeтки Perl 5 бeз внeсeния рaдикaльныx измeнeний. В oстaльнoм Perl 7 oстaнeтся тeм жe Perl 5 и сохранит сочетаемость с ранее разработанными приложениями. Значительная подстановка номера версия выступит своеобразным разделителем перехода к новой модели наращивания функциональности языка Perl не принимая во внимание ощутимого нарушения обратной совместимости. Предполагается, который создание Perl 7 поможет привлечь к использованию Perl новых разработчиков и привести в порядок процесс добавления в язык значительных новых возможностей, сохраняя подле этом совместимость с кодовой базой существующих проектов. Закидон 7 выбран так как Perl 6 был использован возле разработке языка, который теперь развивается подо отдельным именем Raku. Первый релиз Perl 7 предвидится в следующем году. Ветка Perl 5.32 способен последней в серии Perl 5 и её планируется отстаивать от 5 до 10 лет. Сугубо заметным изменением в Perl 7 станет присоединение по умолчанию режима "strict", подразумевающего строгую проверку объявления переменных, использования символьных указателей и присвоения подпрограмм. Эксплуатация "use strict" является хорошим тоном и применяется большинством разработчиков. В т(ак)ом (же) духе по умолчанию планируют включить обработку предупреждений ("use warnings"). В Perl 7 вдобавок рассчитывают стабилизировать и включить по умолчанию другие уже существующие экспериментальные возможности, такие равно как сигнатуры функций ("use feature 'signatures'"), позволяющие около определении функции определить входящие доводы и автоматизировать проверку их числа (только и можно будет писать "sub foo ($left, $right) {" смену) "sub foo { my($left, $right) = @_;"). Планируют подключить по умолчанию и поддержку оператора "isa" про проверки того, является ли мира экземпляром указанного класса или классом, производным через него ("if( $obj isa Package::Name )", а и операций постфиксного разыменования (postderef) "$sref->$*" смену) "${ $sref }", "$aref->@*" чем "@{ $aref }" и "$href->%{ ... }" вместо "%$href{ ... }". Претендентами получай отключение по умолчанию в Perl 7 являются: Косвенная выговор вызова объектов ("no feature qw(indirect)") - устаревший по-свойски вызова объектов, при котором в (обмен "-›" используется пробел ("method $object @param" в обмен. Ant. наряду с "$object->$method(@param)"). Хоть бы, вместо "my $cgi = new CGI" нужно будет всегда пускать в ход "my $cgi = CGI->new". Голые файловые дескрипторы без объявления переменных ("no bareword::filehandle") - рекуперация конструкций вида "open FH, $file" хватит приводить к ошибке, нужно использовать "open my $fh, $file". Перемена не затронет стандартные файловые дескрипторы STDIN, STDOUT, STDERR, ARGV, ARGVOUT и DATA. Фиктивные многомерные массивы и хэши в стиле Perl 4 ("no multidimensional"). К примеру (сказать), указание "$hash{1, 2}" будет являться источником к ошибке, нужно использовать промежуточный скопление, например "$hash{join($;, 1, 2)}". Объявление прототипов в стиле Perl 4 (нужно пустить в ход "use :prototype()"). Для модулей и скриптов, в которых возникнут проблемы с новыми настройками по части умолчанию, предусмотрена возможность возвращения поведения Perl 5 чрез добавление в код строки "use compat::perl5". Отдельные настройки как и сохраняться и их можно будет перевернуть кверху дном по отдельности.