Вопрос
Я посмотрел на источник Разлагаться и я хотел бы понять, как делает slurp()
работай:
sub slurp {
local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ );
return <ARGV>;
}
Где файл даже открыт?
Решение
Видеть ARGV
а также $/
в Перльвар Перльвар.
Смотрите также Путь :: Класс: Файл :: Slurp.
Другие советы
ARGV
Это ручка, файл был открыт неявно.
Этот фрагмент помещает имя файла в @ARGV
. Отказ То ARGV
filehandle неявно открывает файлы, которые он видит в @ARGV
. Отказ Это тот же Filehandle, который мы не видим в алмазном операторе <>
Поскольку это файл гандиды по умолчанию для этого оператора.
Это то же самое Perl Idiom, как:
my $data = do { local( @ARGV, $/ ) = $file; <> };
Не связан с StackOverflow