Perl:do-while循环后打印错误

时间:2012-11-11 09:52:48

标签: perl

我正在进行连接do-while循环,其中每个输入的字符串将被添加到主字符串$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)置于循环中,代码就可以运行,但我很好奇为什么会发生这种错误。

2 个答案:

答案 0 :(得分:3)

上次打印前的行有语法错误 - 它不以;结尾。 只需添加它就可以了。

答案 1 :(得分:0)

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