2011-09-12 2 views
1

나는 Learning Perl 6th Edition의 제 2 장 연습 문제 2 페이지 42에 붙어 있습니다. 296 페이지에서 문제의 코드 예제를 복사했습니다. Ubuntu 11.04에서 Perl 버전 5.10.1을 사용하고 있습니다. 나는 누군가가 도와 줄 수 있는지 알 수없는 오류가 발생합니까? 아래에 코드와 오류 메시지가 표시됩니다.'Learning Perl 6th Edition'의이 예제가 실행되지 않는 이유는 무엇입니까?

#!/usr/bin/perl -w 
$pi = 3.141592654; 
print "What is the radius? "; 
chomp($radius = <STDIN>); 
$circ = 2 * $pi * $radius; 
print "The circumference of a circle of radius $radius is $circ.\n"; 

내가 오류는 다음과 같습니다 당신은 perl 대신 쉘을 사용하여 Perl 스크립트를 실행하는

./ex2-2: line 3: =: command not found 
Warning: unknown mime-type for "What is the radius? " -- using "application/octet-stream" 
Error: no such file "What is the radius? " 
./ex2-2: line 5: syntax error near unexpected token `$radius' 
./ex2-2: line 5: `chomp($radius = <STDIN>);' 
+2

CGI 스크립트로 실행하려고하는 것처럼 들리지만 어떻게 실행 했습니까 (어떤 명령을 입력 했습니까)? –

답변

9

. 줄 번호가 하나씩 꺼져 있다는 사실을 기반으로, 나는 문제의 원인이 빈 줄 (shebang (#!) 줄 앞)이라고 생각합니다. #!은 파일의 처음 2 바이트 여야합니다. 이 빈 줄을 삭제하십시오.

그게 문제가 아니라면, 그럼 아마 당신은

. ex2-2 

또는

perl ex2-2 

또는

ex2-2  # if "." is in your $PATH 
을 사용해야

sh ex2-2 

사용하여 스크립트를 실행 6,

또는

./ex2-2 

마지막 두

은 스크립트 실행 ( chmod u+x ex2-2)를 만드는 것이 필요합니다.

+0

당신은 내가 빈둥 거리기 전에 빈 공간을 가지고 있다는 것이 옳았습니다. 이제 잘 돌아가서 고마워. 나는 밤에 코딩을 멈춰야한다. 나는 피곤할 때 어리석은 실수를한다. – David

4

정확하게 실행 한 내용을 복사하여 붙여 넣으면 도움이됩니다. 아래의 예에서 행 번호가 다르다는 것을 유의하십시오.

$ cat x.pl 
#!/usr/bin/perl -w 
$pi = 3.141592654; 
print "What is the radius? "; 
chomp($radius = <STDIN>); 
$circ = 2 * $pi * $radius; 
print "The circumference of a circle of radius $radius is $circ.\n"; 
$ sh x.pl 
x.pl: line 2: =: command not found 
x.pl: line 3: print: command not found 
x.pl: line 4: syntax error near unexpected token `$radius' 
x.pl: line 4: `chomp($radius = <STDIN>);' 
$ 

이것은 MacOS X 10.7.1에서 Bash 3.x와 함께 사용되었습니다.

출력을 감안할 때 자신의 스크립트가 Perl 스크립트가 아닌 셸 스크립트로 실행되었다고 확신 할 수 있습니다. bash을 사용하여 실행했습니다.

+1

오류가 도와주기 전에 빈 줄을 끝내도록 도와 주셔서 감사합니다 #! . – David

관련 문제