Wie funktioniert die Arbeit Slurp Moduls Perl?
Frage
Ich hatte einen Blick auf die Quelle der Slurp und ich würde zu verstehen, lieben, wie slurp()
tut Arbeit:
sub slurp {
local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ );
return <ARGV>;
}
Wo ist die Datei noch geöffnet?
Lösung
Siehe ARGV
und $/
in perldoc perlvar .
Siehe auch Pfad :: Klasse: File :: schlürfen .
Andere Tipps
ARGV
ist ein Griff, wird die Datei implizit geöffnet.
Dieser Code-Schnipsel legt den Dateinamen in @ARGV
. Die ARGV
Dateihandle öffnet implizit die Dateien, die es in @ARGV
sieht. Dies ist die gleiche Dateihandle, dass wir nicht sehen, in dem <>
Diamanten Betreiber, da es die Standard-Dateihandle für diesen Operator ist.
Dies ist das gleiche Perl Idiom wie:
my $data = do { local( @ARGV, $/ ) = $file; <> };
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow