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, либо подписаться на нашу еженедельную рассылку.