Perl的Slurp模块如何工作?

时间:2010-10-25 10:28:53

标签: perl slurp

我查看了Slurp的来源,我很想了解slurp()的工作原理:

sub slurp { 
    local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ ); 
    return <ARGV>;
}

文件在哪里打开?

3 个答案:

答案 0 :(得分:6)

请参阅ARGV中的$/perldoc perlvar

另见Path::Class:File::slurp

答案 1 :(得分:5)

ARGV是句柄,文件已被隐式打开。

答案 2 :(得分:1)

此代码段将文件名放在@ARGV中。 ARGV文件句柄隐式打开它在@ARGV中看到的文件。这与我们在菱形运算符<>中看不到的文件句柄相同,因为它是该运算符的默认文件句柄。

这与Perl成语相同:

 my $data = do { local( @ARGV, $/ ) = $file; <> };