Perl 中的花哨文件
Fancy file slurping in Perl
我正在研究在 Perl 中读取文件的有效方法,并遇到了这个非常有趣的行:
my $text = do { local (@ARGV, $/) = $file; <> };
我的问题是:这究竟是如何工作的?通常在读取文件时设置 $/ = undef
,但我不明白这是怎么做到的。事实证明,这一小段代码很难理解。
对此的简化分解和解释是什么?
现在我知道它是如何工作的,让我们开始真正的幻想吧!
并不是说这段代码有任何实际用途;弄清楚它很有趣并且看起来很酷。这是一个可以同时 slurp 多个文件的单行文件!!!
my @texts = map { local (@ARGV, $/) = $_; <> } @files;
local (@ARGV, $/) = $file;
与
相同
local @ARGV = ( $file );
local $/ = undef;
<>
然后从 @ARGV
中提到的文件中读取,即从 $file
.
中读取
我正在研究在 Perl 中读取文件的有效方法,并遇到了这个非常有趣的行:
my $text = do { local (@ARGV, $/) = $file; <> };
我的问题是:这究竟是如何工作的?通常在读取文件时设置 $/ = undef
,但我不明白这是怎么做到的。事实证明,这一小段代码很难理解。
对此的简化分解和解释是什么?
现在我知道它是如何工作的,让我们开始真正的幻想吧!
并不是说这段代码有任何实际用途;弄清楚它很有趣并且看起来很酷。这是一个可以同时 slurp 多个文件的单行文件!!!
my @texts = map { local (@ARGV, $/) = $_; <> } @files;
local (@ARGV, $/) = $file;
与
相同local @ARGV = ( $file );
local $/ = undef;
<>
然后从 @ARGV
中提到的文件中读取,即从 $file
.