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