Что такое "Современный Perl"?
Я много слышал об этом "Современном Perl". Что это?
Одна из вещей, которые я слышал, это новый открытый синтаксис:
open my $FH, '<', $filename
а не
open FH, "<$filename";
Что еще в Modern Perl?
Ответы
Ответ 1
Чтобы добавить некоторые особенности к обзору deinst, Modern Perl:
- использует Perl 5.10 новые функции, например инструкции switch (
given
/when
) и say
- следует хорошей практике программирования Perl, например
use strict
и use warnings
- может использовать Modern:: Perl модуль CPAN для упрощения всего этого
- использует Moose для написания высокоуровневого OO-кода
Ответ 2
Чтобы привести источник ,
Современное программирование на Perl, около 2010 года, опирается на собранную мудрость всего Perl экосистема. Пришло время написать элегантную, надежную, удобную, хорошо проверенную и предсказуемую код.
См. также книгу. И эта цитата из книги
Современный Perl - это беспроигрышное описание того, как работают опытные и эффективные программисты Perl 5. Они используют языковые идиомы. Они используют CPAN. Они узнают Perlish, и они демонстрируют хороший вкус и мастерство и полное понимание Perl.
Ответ 3
Современный Perl не является надлежащим существительным; это то, что люди могут сказать, чтобы ссылаться на код Perl, который использует функции, доступные только за последние X лет, где X будет отличаться от человека к человеку.
Информацию о различных изменениях в Perl см. в файлах perldelta, например, http://perldoc.perl.org/index-history.html.
Ответ 4
Чтобы быть конкретным для вашего вопроса, связанного с открытием дескриптора файла в современном Perl: вы должны использовать форму с тремя аргументами, а не в форме двух аргументов!
Используйте форму с тремя аргументами open
, чтобы указать слои ввода-вывода (также называемые "дисциплин" ) для применения к дескриптору. Это влияет на обработку обработок read-write (подробнее см. http://perldoc.perl.org/functions/open.html). Например:
open(my $fh, "<:encoding(UTF-8)", "filename")
|| die "can't open UTF-8 encoded filename: $!";