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