为什么赢了';这个例子来自';学习Perl第6版&x27;跑
我被困在学习Perl第6版第42页的第2章练习2上。 我从第296页复制了这个问题的代码示例。我在Ubuntu 11.04上使用Perl版本5.10.1。我犯了一些我无法理解的错误,有人能帮我吗?我将在下面列出代码和错误消息为什么赢了';这个例子来自';学习Perl第6版&x27;跑,perl,Perl,我被困在学习Perl第6版第42页的第2章练习2上。 我从第296页复制了这个问题的代码示例。我在Ubuntu 11.04上使用Perl版本5.10.1。我犯了一些我无法理解的错误,有人能帮我吗?我将在下面列出代码和错误消息 #!/usr/bin/perl -w $pi = 3.141592654; print "What is the radius? "; chomp($radius = <STDIN>); $circ = 2 * $pi * $radius; print "The
#!/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";
#/usr/bin/perl-w
$pi=3.141592654;
打印“半径是多少?”;
chomp($radius=);
$circ=2*$pi*$radius;
打印“半径为$radius的圆的周长为$circ。\n”;
我得到的错误是:
./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>);'
/ex2-2:找不到第3行:=:命令
警告:“半径是多少?”的mime类型未知--使用“应用程序/八位字节流”
错误:没有这样的文件“半径是多少?”
./ex2-2:第5行:意外标记“$radius”附近的语法错误
/ex2-2:第5行:`chomp($radius=);'
您正在使用shell而不是Perl
执行Perl脚本。基于行号偏离1的事实,我怀疑问题的原因是shebang(#!
)行之前的一个空行<代码>#代码>必须是文件的前两个字节。删除此空行
如果这不是问题所在,那么您可能使用
. ex2-2
或
当你应该使用
perl ex2-2
或
或
最后两项要求您使脚本可执行(
chmod u+x ex2-2
)。您正在使用shell而不是Perl
执行Perl脚本。基于行号偏离1的事实,我怀疑问题的原因是shebang(#!
)行之前的一个空行<代码>#代码>必须是文件的前两个字节。删除此空行
如果这不是问题所在,那么您可能使用
. ex2-2
或
当你应该使用
perl ex2-2
或
或
最后两项要求您使脚本可执行(
chmod u+x ex2-2
)。如果您复制并粘贴了所执行的内容,则会有所帮助。请注意,以下示例中的行号不同:
$ 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>);'
$
$cat x.pl
#!/usr/bin/perl-w
$pi=3.141592654;
打印“半径是多少?”;
chomp($radius=);
$circ=2*$pi*$radius;
打印“半径为$radius的圆的周长为$circ。\n”;
$sh x.pl
x、 pl:第2行:=:未找到命令
x、 pl:第3行:未找到打印:命令
x、 pl:第4行:意外标记“$radius”附近的语法错误
x、 pl:第4行:`chomp($radius=);'
$
这是MacOSX10.7.1上的Bash3.x
有了这个输出,我可以自信地诊断您的脚本是作为shell脚本运行的,而不是作为Perl脚本运行的<代码>bash被用来运行它。如果您复制并粘贴了您执行的内容,它会有所帮助。请注意,以下示例中的行号不同:
$ 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>);'
$
$cat x.pl
#!/usr/bin/perl-w
$pi=3.141592654;
打印“半径是多少?”;
chomp($radius=);
$circ=2*$pi*$radius;
打印“半径为$radius的圆的周长为$circ。\n”;
$sh x.pl
x、 pl:第2行:=:未找到命令
x、 pl:第3行:未找到打印:命令
x、 pl:第4行:意外标记“$radius”附近的语法错误
x、 pl:第4行:`chomp($radius=);'
$
这是MacOSX10.7.1上的Bash3.x
有了这个输出,我可以自信地诊断您的脚本是作为shell脚本运行的,而不是作为Perl脚本运行的
bash
是用来运行它的。听起来你想把它作为CGI脚本运行,你是怎么执行的(你输入了什么命令)?听起来你想把它作为CGI脚本运行,你是怎么执行的(你输入了什么命令)?你说得对,我在shebang之前确实有一个空的空间。现在很好,谢谢。我应该在晚上停止编码,我累的时候会犯愚蠢的错误。你是对的,在爆炸之前我确实有一个空的空间。现在很好,谢谢。我应该在晚上停止编码。我累的时候会犯愚蠢的错误。谢谢你的帮助。这个错误最后变成了一个空行。谢谢你的帮助,这个错误在shebang#之前是一个空白行。