Я искал эффективные способы чтения файлов в Perl и наткнулся на очень интересную строчку:
my $text = do { local (@ARGV, $/) = $file; <> };
Мой вопрос: как именно это работает? Обычно при глотании файла вы устанавливаете $/ = undef
, но я не понимаю, как это происходит. Этот небольшой фрагмент кода оказывается очень трудным для понимания.
Какова была бы упрощенная разбивка и объяснение этого?
Теперь, когда я знаю, как это работает, давайте пофантазируем!
Не то чтобы этот код имел реальное применение; это просто интересно понять и круто посмотреть. Вот однострочник, чтобы одновременно глотать несколько файлов!!!
my @texts = map { local (@ARGV, $/) = $_; <> } @files;
($a, $b, $c) = (1, 2)
.$c
здесь закончитсяundef
- person n0rd   schedule 05.05.2015map
для нескольких файлов.my @texts = do { local (@ARGV, $/) = @files; <> };
- person ikegami   schedule 06.05.2015