Выпущен Perl 5.14


Perl 5.14, стабильная версия языка Perl 5 в этом году, была выпущена с несколькими приветственными функциями, наиболее важными из которых являются функции Unicode.

Perl 5.14, стабильный выпуск языка Perl 5 в этом году, является первым в запланированной серии ежегодных релизов, основанных на времени, объявленных в прошлом году. С точки зрения разработчика Perl он имеет несколько важных функций:

Юникод

Perl 5.14 имеет поддержку Unicode 6.0 и другие улучшения, связанные с unicode, наиболее важной из которых является функция “unicode_strings”, которая предписывает компилятору использовать семантику Unicode, а не традиционную собственную модель Unicode Perl, что облегчает связанные с ней проблемы (см. “Флаг UTF8” в вопросах Unicode в Perl.)

Регулярные выражения

Новые модификаторы регулярных выражений позволяют явно использовать семантику ASCII, Unicode или локали для классов символов независимо от внутренней кодировки строк. Это означает, что, например, используйте локаль “греческий” в строке Юникода, регулярное выражение будет работать только с греческими символами

Также удобная неразрушающая версия оператора подстановки вводится с флагом /r. Это означает, что целевая строка не изменяется, но вместо этого возвращается обработанная строка, поэтому вы можете заменить код следующим образом :

используйте 5.010000;my $name=”a1b2c3d”; my $temp;$temp = $name =~ s/\d/x/g;скажем $temp;#prints: 3, что является#количеством замененных символов, скажем $name;prints: axbxcxd

или это, которое сохраняет целевую строку ($name) нетронутой при сохранении результирующей строки в $temp:

используйте 5.010000;my $name=”a1b2c3d”;my $temp;( $temp = $name ) =~ s/\d/x/g;скажем $temp;#prints: axbxcxdsay $name;#prints: a1b2c3d

с кодом, использующим модификатор new /r:

my $name=”a1b2c3d”;$temp=$name =~ s/\d/x/gr;say $temp;#prints: axbxcxdsay $name;#prints: a1b2c3d

Синтаксические усовершенствования

Функции массива и хэш-контейнера принимают ссылки; например, операторы массива (push, pop, shift, unshift) работали с именованными массивами, но теперь также работают со ссылками на массивы

(Для более глубокого объяснения см. “Perl strong typed?” в разделе Strong typing)

Следующий пример не будет компилироваться при установке до версии 5.14 :

my @a=(1,2,3);my @b=(4,5,6);

мой $array_ref=\@a;push $array_ref,@b;

печать @a;

#Тип arg 1, который нужно нажать, должен быть массивом (не #скалярное разыменование) в c:\1.pl строка 5,#рядом с “@b;”\#Выполнение c:\1.pl прервано из-за ошибок #компиляции.

в то время как в 5.14 он будет производить следующее :

#отпечатки: 123456

Обработка исключений

Улучшена обработка исключений, не в смысле SEH с предложениями try catch, но исправлены некоторые проблемы, что делает его более надежным.

Другие улучшения включают указание любого символа с его порядковым значением в восьмеричной форме, и что srand() теперь возвращает начальное значение.

Некоторые функции были устаревшими в рамках очистки языка. Для получения всех подробностей проверьте дельту Perl 5.14.

Масштабная задача обновления всех пакетов модулей Activestate (PPM) 5.14 уже началась, и вы можете проверить страницы индекса PPM на наличие последних обновлений.

Если вы хотите получать информацию о новых статьях на I Programmer, вы можете либо следить за нами в Twitter или Facebook, либо подписаться на нашу еженедельную рассылку.


Добавить комментарий