我正在进行连接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)
置于循环中,代码就可以运行,但我很好奇为什么会发生这种错误。
答案 0 :(得分:3)
上次打印前的行有语法错误 - 它不以;
结尾。
只需添加它就可以了。
答案 1 :(得分:0)
除了语法错误之外值得一提的是:我看到你用换行符启动字符串。虽然这很好,但在打印之前用换行符结束字符串可能被认为“更好”,因为打印换行符会立即刷新STDOUT缓冲区。在大多数情况下,这是您想要的行为,因为它可以防止延迟输出和文本闪烁(特别是如果打印很多)。