使用Perl习语$ /和q || 以块方式读取文本文件

atr*_*eju 5 perl

我试图理解一些用于逐块读取文本文件的Perl代码.

文本文件MYFILE如下所示:

First block
First Line: Something in here
Second Line: More here
Third Line: etc.

Second block
First Line: Something in here
Second Line: More here
Third Line: etc.
Run Code Online (Sandbox Code Playgroud)

代码用于提取找到正则表达式的块的行(并且它工作正常,我只想了解它).

这是我不理解的代码的一部分:

local $/ = q||;
while (<MYFILE>) {
    do something;
}
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释这条线路local $/ = q||;在做什么吗?

per*_*eal 10

$/输入记录分隔符."这影响了Perl关于"线"是什么的想法.将其设置为空字符串,即''导致空行拆分记录.q||符号引用管道内的东西所以q||是相同的''.您可以使用带有q前缀的各种分隔符:q(), q//也是相同的.

  • 小心翼翼地,`q ||'与`''`相同.`qq ||`与``"`相同. (2认同)