Come funziona il modulo Slurp del Perl?
Domanda
Ho dato un'occhiata alla fonte di Slurp e mi piacerebbe capire come funziona slurp()
lavoro:
sub slurp {
local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ );
return <ARGV>;
}
Dove si trova il file anche aperto?
Soluzione
Altri suggerimenti
ARGV
è una maniglia, il file è stato aperto in modo implicito.
Questo frammento mette il nome del file in @ARGV
. Il filehandle ARGV
apre implicitamente i file che vede in @ARGV
. Questo è lo stesso filehandle che non vediamo nel <>
operatore diamante dal momento che è il filehandle di default per tale operatore.
Questo è lo stesso linguaggio Perl come:
my $data = do { local( @ARGV, $/ ) = $file; <> };
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow