¿Cómo funciona el módulo de sorber del Perl?
Pregunta
Yo tenía un vistazo a la fuente de Slurp y me gustaría entender cómo funciona slurp()
trabajo:
sub slurp {
local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ );
return <ARGV>;
}
¿Dónde está aún abierto el archivo?
Solución
Otros consejos
ARGV
es un mango, el archivo ha sido abierto de manera implícita.
Este fragmento pone el nombre de archivo en @ARGV
. El gestor de archivo ARGV
implícitamente abre los archivos que ve en @ARGV
. Este es el mismo gestor de archivo que no vemos en el <>
operador de diamante, ya que es el gestor de archivo por defecto para ese operador.
Este es el mismo lenguaje Perl como:
my $data = do { local( @ARGV, $/ ) = $file; <> };
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow