Como funciona o módulo Slurp do Perl?
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?
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