3

这有效: -

while (<CONF>) {
  print $_;
}

但这不是:-

if (<CONF>) {
  print $_;
}

并给出有关未初始化值的错误。我在这里想念什么?

4

2 回答 2

5
while (<CONF>)

被重写为

while (defined($_ = <CONF>))

所以你可能想要

if (defined($_ = <CONF>))
于 2012-09-04T21:52:08.210 回答
4

只有当它是 while 循环中的唯一条件时,来自文件句柄的 I/O 才会被读取到 $_。这是一个特例。它不会在 if 中读入 $_。看这里

于 2012-09-04T21:54:04.387 回答