Вопрос

Я посмотрел на источник Разлагаться и я хотел бы понять, как делает 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; <> };
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top