0

我正在制作一个连接的 do-while 循环,其中每个输入的字符串都将被添加到 main string $food。这是代码:

do {
  print("\nEnter your order(-1 to end): ");
  $order = <>;
  chop($order);

  if ($order != -1) {
   $food .= " ".$order;
   print($food);
  }  
} while ( $order != -1)

print ($food); #PROBLEM HERE!

问题是每当我放在print ($food) 循环之外时,都会出现此行的语法错误以及一条Execution of file.pl aborted due to compilation errors消息。

一旦我放入print ($food)循环中,代码就可以工作,但我很好奇为什么会发生这个错误。

4

2 回答 2

3

您上次打印之前的行有语法错误 - 它不以;. 只需添加它,它应该可以工作。

于 2012-11-11T09:55:28.493 回答
0

除了语法错误之外,值得一提的是:我看到您使用换行符开始字符串。虽然这很好,但在打印之前用换行符结束字符串可能被认为“更好”,因为打印换行符会导致立即刷新 STDOUT 缓冲区。在大多数情况下,这是您想要的行为,因为它可以防止延迟输出和文本闪烁(尤其是在大量打印时)。

于 2012-11-11T10:07:19.333 回答