| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Perl 5.10.0 релизнулся |
| Автор: AriX 20.12.2007, 15:07 | ||||||||||||||||||||||||||
Perl 5.10.0 включает в себя некоторые элементы Perl 6, а также:
Подробности и ссылки тут: http://dev.perl.org/perl5/news/2007/perl-5.10.0.html http://www.perl.org/get.html Что нового в Perl 5.10? Следует заметить, что Perl 5.10 имеет обратную совместимость с предыдущими версиями в отличии от грядущего Perl 6. По-умолчанию новые возможности версии 5.10 отключены. Активируются они специальной прагмой http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perl5100delta.pod#The_feature_pragma, которая, кстати, имеет лексическую область видимости; или при помощи записи use 5.10. Функция http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perlfunc.pod#say Аналог старого-доброго print, с тем лишь отличием, что say автоматически добавляет "\n" к выводимой строке:
Оператор http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perlop.pod#C-style_Logical_Defined-Or__ Смесь || и defined, которая называется defined-or. Известно, что следующий код не совсем корректен, поскольку не учитываются «ложные» значения "" и 0:
Корректная запись выглядит так:
Благодаря новому оператору // предыдущих два примера переписываются вот таким образом:
Оператор http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perlsyn.pod#Smart_matching_in_detail Данный оператор реализует механизм умного сопоставления или smart matching. Он является коммутативным (то есть, $a ~~ $b эквивалентно $b ~~ $a) и его поведение зависит от типов передаваемых аргументов. Например:
Другими словами, ~~ — это «все-в-одном». Такое себе контекстно-зависимое сокращение. Полная таблица поведений доступна по ссылке из заголовка. http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perlsyn.pod#Switch_statements_____ — аналог C-конструкции switch Теперь эта конструкция built-in. Ее реализуют три новых слова: given, when и default. К тому же, она использует, описанное выше, умное сопоставление. Пример в студию!
Игра «Отгадай число» (:
http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perl5100delta.pod#Regular_expressions
http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perlsub.pod#Persistent_variables_via_state() C-аналог модификатора static. Переменные объявленные со словом state имеют лексическую область видимости, но сохраняют свое значение постоянно.
http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perl5100delta.pod#Stacked_filetest_operators операторы стали стековыми Теперь запись
сокращаем до
И многое другое… Рассмотреть здесь полностью все изменения не представляется возможным. Но если вы заинтересовались, то список новшеств можно прочитать в файле http://search.cpan.org/~rgarcia/perl-5.10.0-RC1/pod/perl5100delta.pod При написании этой статьи были использованы следующие материалы:
|
| Автор: ZeeLax 20.12.2007, 16:43 |
| |
| Автор: nitr 3.1.2008, 16:46 |
| В догонку: уже есть http://www.activestate.com/Products/activeperl/index.plex |