我看过Slurp的源代码,我很想了解slurp()是如何工作的:
sub slurp {
local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ );
return <ARGV>;
}文件是在哪里打开的?
发布于 2010-10-25 19:03:02
请参见perldoc perlvar中的ARGV和$/。
发布于 2010-10-25 19:04:57
ARGV是一个句柄,文件已隐式打开。
发布于 2010-10-26 07:09:22
这段代码将文件名放在@ARGV中。ARGV文件句柄隐式打开它在@ARGV中看到的文件。这与我们在菱形操作符<>中看不到的文件句柄相同,因为它是该操作符的默认文件句柄。
这是与以下相同的Perl习惯用法:
my $data = do { local( @ARGV, $/ ) = $file; <> };https://stackoverflow.com/questions/4013668
复制相似问题