Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么赢了';这个例子来自';学习Perl第6版&x27;跑_Perl - Fatal编程技术网

为什么赢了';这个例子来自';学习Perl第6版&x27;跑

为什么赢了';这个例子来自';学习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

我被困在学习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 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#之前是一个空白行。