花哨的文件在Perl中啜饮

tjw*_*992 9 perl file-io scope syntactic-sugar deobfuscation

我正在研究在Perl中读取文件的有效方法,并遇到了这个非常有趣的内容:

my $text = do { local (@ARGV, $/) = $file; <> };
Run Code Online (Sandbox Code Playgroud)

我的问题是:这究竟是如何工作的?通常在啜饮你设置的文件时$/ = undef,但我不知道这是怎么回事.事实证明,这一小段代码非常难以理解.

什么是简化的细分和解释?


现在我知道它是如何工作的,让我们真正想象!

并不是说这段代码有任何实际用途; 想出来并冷静看待它真的很有趣.这是一个同时啜饮多个文件的单线程!

my @texts = map { local (@ARGV, $/) = $_; <> } @files;
Run Code Online (Sandbox Code Playgroud)

cho*_*oba 10

local (@ARGV, $/) = $file;
Run Code Online (Sandbox Code Playgroud)

是相同的

local @ARGV = ( $file );
local $/    = undef;
Run Code Online (Sandbox Code Playgroud)

<>然后从中提到的文件中读取@ARGV,即从$file.