我对perl很新,我知道这不像c ++。所以用户将输入任意长度的数字,我想添加每个数字并打印总和。
#!/usr/bin/perl -w
use strict;
use warnings;
print "Enter a number :";
my $num = <STDIN>;
my @array = $num;
my $sum=0;
for my $arr (@array){
$sum += $arr;
print $sum;
}
例如,用户输入1234,总和:10 我得到的实际结果是1234。
答案 0 :(得分:4)
您需要将输入字符串$num
分成不同的数字。尝试将my @array = $num
替换为my @array = split //, $num
。通过运行perldoc -f split
了解更多信息。
在Perl中,字符串和数字都归类为SCALAR
s。如果使用算术运算(如+
),标量将自动视为数字,因此for
循环内的求和将按预期工作。
答案 1 :(得分:2)
你只需要添加两行
use strict;
use warnings;
print "Enter a number :";
my $num = <STDIN>;
#You missed out to remove the entermark at the end
chomp($num); my $newnum = "0";
$newnum += $_ for split//, $num;
print $newnum;
注意:我没有覆盖或没有考虑你所遵循的方法,但我只是在perl中做了我所知道的。