Что такое "Современный Perl"? - PullRequest
13 голосов
/ 12 августа 2010

Я много слышал об этом "Современном Perl". Что это?

Одна из вещей, которую я услышал, - это новый открытый синтаксис:

open my $FH, '<', $filename

а не

open FH, "<$filename";

Что еще есть в Modern Perl?

Ответы [ 4 ]

12 голосов
/ 12 августа 2010

Цитировать источник

Современное программирование на Perl, около 2010 года, опирается на собранную мудрость всего Perl экосистема. Пришло время написать элегантный, надежный, ремонтопригодный, хорошо проверенный и предсказуемый Код.

См. Также, Книга . И эта цитата из книги

Современный Perl - это подробное описание того, как работают опытные и эффективные программисты Perl 5. Они используют языковые идиомы. Они используют в своих интересах CPAN. Они узнаваемо Perlish, они демонстрируют хороший вкус, мастерство и полное понимание Perl.

9 голосов
/ 12 августа 2010

Чтобы добавить некоторые подробности к обзору deinst, Modern Perl:

  • использует новые возможности Perl 5.10 , например операторы переключения (given/ when) и say
  • соответствуют хорошим практикам программирования на Perl, например use strict и use warnings
  • могут использовать Modern ::Модуль Perl CPAN для оптимизации всего этого
  • использует Moose для написания высокоуровневого кода OO
2 голосов
/ 12 августа 2010

Современный Perl не является собственным именем;это просто то, что люди могут сказать, ссылаясь на код Perl, который использует функции, доступные только в последние X лет, где X будет варьироваться от человека к человеку.

Информацию о различных изменениях в Perl смотрите в файлах perldeltaнапример на http://perldoc.perl.org/index-history.html.

1 голос
/ 01 сентября 2012

Чтобы быть конкретным в вашем вопросе, связанном с открытием дескриптора файла в современном Perl: вы должны использовать форму с тремя аргументами, а не форму с двумя аргументами!

Используйте форму с тремя аргументами open, чтобы указать слои ввода / вывода (также называемые «дисциплинами»), которые будут применяться к дескриптору. Это влияет на то, как обрабатываются операции чтения-записи (см. http://perldoc.perl.org/functions/open.html для более подробной информации). Например:

open(my $fh, "<:encoding(UTF-8)", "filename")
|| die "can't open UTF-8 encoded filename: $!";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...