0

我在 gedit 上写了这个小代码并运行它:-

#/usr/bin/perl
print "Enter the radius of circle: \n";
$radius = <>;
chomp $radius;
print "radius is: $radius\n";
$circumference = (2*3.141592654) * $radius;
print "Circumference of circle with radius : $radius = $circumference\n";

使用命令行运行良好。在 Komodo 上运行相同的代码编辑:面临一个问题,我希望第一行作为输出:- 输入圆的半径:它在屏幕上等待,即等待输入,然后按顺序运行所有内容-- 有人能告诉我为什么它在命令行上运行良好,但在 Komodo 上却不行吗?


将 #/usr/bin/perl 更改为 #!/usr/bin/perl 后的输出:- 还必须声明我的 $radius 和 $circumference ------------------ --------------------------------------

12 # same i had to enter 12
Enter the radius of circle: 
radius is: 12
Circumference of circle with radius : 12 = 75.398223696
4

2 回答 2

0

虽然“使用严格”和正确拼写的 shebang 行总是好事,但实际原因也不是。在非命令行环境中运行交互式程序时,通常应该关闭 I/O 缓冲。在 Perl 中,您应该将此行放在代码的顶部:

$| = 1;
于 2010-05-06T01:41:13.777 回答
0

我已经使用 Komodo 编辑测试了你的脚本,它工作正常,除了以下几个更正。

#!/usr/bin/perl -w
use strict;

print "Enter the radius of circle: \n";
my $radius = <>;
chomp $radius;
print "radius is: $radius\n";
my $circumference = (2*3.141592654) * $radius;
print "Circumference of circle with radius : $radius = $circumference\n";

科莫多中的输出

Enter the radius of circle: 
5
radius is: 5
Circumference of circle with radius : 5 = 31.41592654
于 2010-04-23T08:15:39.557 回答