我查看了Slurp的来源,我很想了解它是如何slurp()工作的:
sub slurp {
local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ );
return <ARGV>;
}
文件甚至在哪里打开?
请参阅perldoc perlvar中的ARGV和。$/
ARGV是一个句柄,文件已被隐式打开。
此代码段将文件名放在@ARGV. ARGV文件句柄隐式打开它在@ARGV. 这是我们在菱形运算符中看不到的相同文件句柄,<>因为它是该运算符的默认文件句柄。
这与 Perl 的成语相同:
my $data = do { local( @ARGV, $/ ) = $file; <> };