如何从 Perl 中的输入或文件中检测空行?

car*_*rol 1 perl while-loop

while ($_ ne ' \n')不检测输入是否为空行并在 while 中不确定地循环。为什么?

Dav*_*oss 6

取决于您所说的“空行”是什么意思。

该行是否不包含换行符以外的任何字符?

if ($_ eq "\n") # Note, \n only means newline in a double quoted string.
Run Code Online (Sandbox Code Playgroud)

或者

if (/^$/)
Run Code Online (Sandbox Code Playgroud)

该行是否仅包含空白字符

if (/^\s*$/)
Run Code Online (Sandbox Code Playgroud)

但是,如果您反转逻辑以说该行不包含任何非空白字符,那就更容易了

if (! /\S/)
Run Code Online (Sandbox Code Playgroud)

其中之一应该做你想做的。