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

ファイルハンドルからの I/O は、それが while ループの唯一の条件である場合にのみ $_ に読み込まれます。これは特殊なケースです。if の $_ には読み込まれません。こちらをご覧ください

于 2012-09-04T21:54:04.387 に答える