用户输入的非数字参数

时间:2018-02-03 21:46:42

标签: perl

在此代码中,要求用户从键盘输入一个数字。然后在分割的后期再次使用该变量。

当代码运行时,它会收到

  

360 /(无论输入什么数字)另外还不是数字。

Perl是否将用户输入解释为字符串而不是数值?

use strict;
use warnings;

use Language::Logo;

print "Enter a number: ";
chomp(my $number = <STDIN>);

my $lo = new Logo(title => "Logo Demonstration");
$lo->command("update 2; color random; pendown; hideturtle");

for ( my $i = 1; $i < 999; $i++ ) {
    my $distance = $i / 4;
    $lo->command("forward $distance; right 360/$number");
}

$lo->disconnect("Press ctrl+c to exit");

1 个答案:

答案 0 :(得分:0)

如果你尝试怎么办?

$lo->command("forward $distance; right " . (360/$number));

如果这不起作用,请尝试强制Perl通过向其添加0来“看到”$ number作为数字:

$rotation = 360 / ($number+0); 
$command = "forward $distance; right " . $rotation;
$lo->command($command);

如果这也不起作用,请尝试手动将$命令设置为可以工作的东西,并报告回来。