我正在寻找在Perl中高效读取文件的方法,然后发现了这个非常有趣的一行代码:
我的问题是:这个到底是如何工作的?通常在读取文件时,您会将
既然我知道它是如何工作的,让我们变得更加复杂!
请注意,这段代码没有任何实际用途;只是有趣和酷炫。这是一个一行代码,可以同时读取多个文件!
my $text = do { local (@ARGV, $/) = $file; <> };
我的问题是:这个到底是如何工作的?通常在读取文件时,您会将
$/ = undef
,但我不知道这个代码片段是如何实现的。这段小代码非常难以理解。可以简化并解释一下吗?
既然我知道它是如何工作的,让我们变得更加复杂!
请注意,这段代码没有任何实际用途;只是有趣和酷炫。这是一个一行代码,可以同时读取多个文件!
my @texts = map { local (@ARGV, $/) = $_; <> } @files;
($a, $b, $c) = (1, 2)
。这里的$c
将会是undef
。 - n0rdmap
处理多个文件。可以使用以下语句将多个文件的内容读取到一个数组中:my @texts = do { local (@ARGV, $/) = @files; <> };
该语句会将@files
数组中的所有文件名依次赋值给@ARGV
数组,并使用<>
运算符将各个文件的内容读取到一个字符串中,最终将这些字符串存储在@texts
数组中。 - ikegami