Pergunta

Eu dei uma olhada na fonte de Slurp E eu adoraria entender como slurp() trabalhar:

sub slurp { 
    local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ ); 
    return <ARGV>;
}

Onde o arquivo é aberto?

Foi útil?

Solução

Ver ARGV e $/ dentro PerlDoc Perlvar.

Veja também Path :: Class: File :: Slurp.

Outras dicas

ARGV é um identificador, o arquivo foi aberto implicitamente.

Este trecho coloca o nome do arquivo em @ARGV. o ARGV FileHandle abre implicitamente os arquivos que ele vê em @ARGV. Este é o mesmo arquivo de arquivo que não vemos no operador de diamante <> Como é o arquivo de arquivo padrão para esse operador.

Este é o mesmo idioma perl que:

 my $data = do { local( @ARGV, $/ ) = $file; <> };
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top