这适用: -
while (<CONF>) {
print $_;
}
但这不是: -
if (<CONF>) {
print $_;
}
并提供有关未初始化值的错误。我在这里错过了什么?
答案 0 :(得分:5)
while (<CONF>)
被重写为
while (defined($_ = <CONF>))
所以你可能想要
if (defined($_ = <CONF>))
答案 1 :(得分:4)
文件句柄中的I / O只有当它是while循环中的唯一条件时才被读取到$ _。这是一个特例。它不会读入if中的$ _。见here