花哨的文件在Perl中啜饮

时间:2015-05-05 20:13:42

标签: perl file-io scope syntactic-sugar deobfuscation

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

if 'somekey' in somPartOfTheJson:
    jsonObj = json.loads(jsonStr)

    for item in jsonObj['response']['artists']:
        if 'foreign_ids' in item:
            for row in item['foreign_ids']:
                if 'catalog' in row and 'foreign_id' in row:
                    print row['catalog'], row['foreign_id']

我的问题是:这究竟是如何运作的?通常情况下,在设置my $text = do { local (@ARGV, $/) = $file; <> }; 的文件时,我不知道如何做到这一点。事实证明,这一小段代码非常难以理解。

对此有什么简化的细分和解释?

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

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

$/ = undef

1 个答案:

答案 0 :(得分:10)

local (@ARGV, $/) = $file;

相同
local @ARGV = ( $file );
local $/    = undef;

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