입력 문자열 각각을 주 문자열 $food
에 추가하는 concatenating do-while 루프를 만들고 있습니다. 여기 코드는 다음과 같습니다Perl : do-while 루프 이후에 인쇄 할 때 오류가 발생했습니다.
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)
을 넣으면 작동하지만 왜이 오류가 발생하는지 궁금합니다.
'컴파일 오류로 인해 file.pl이 중단되었습니다.'는 오류 메시지가 아닙니다. 실제 오류 메시지 인'script.pl 12 행의 구문 오류 "를 완전히 무시했습니다.") print "'. – ikegami
안전한 버전을'chop'하지 않고'chomp'를 사용하십시오. – PSIAlt
나는 일반적으로 do do while을 싫어한다. 반복마다 조건을 두 번 확인하기 때문에 여기서는 유용하지 않습니다! 내가 쓰는 것은 : while (1) {print (...); $ order = <>; 마지막으로 if! defined ($ order); chomp ($ order); 마지막으로 $ order eq -1; $ food. = "$ order"; } print "$ food \ n"; ' – ikegami