这有效: -
while (<CONF>) {
print $_;
}
但这不是:-
if (<CONF>) {
print $_;
}
并给出有关未初始化值的错误。我在这里想念什么?
while (<CONF>)
被重写为
while (defined($_ = <CONF>))
所以你可能想要
if (defined($_ = <CONF>))
只有当它是 while 循环中的唯一条件时,来自文件句柄的 I/O 才会被读取到 $_。这是一个特例。它不会在 if 中读入 $_。看这里