我已经编写了以下Perl代码:
print "Enter two numbers \n";
$choise = <STDIN>;
$choise2 = <STDIN>;
$res = add($choise1, $choise2);
print "\n and the result is $res";
sub add
{
($x,$y) = @_;
$res = $x + $y;
return $res;
}
但是当我输入两个输入时,输出是错误的。例如,将4和5相加,我得到的输出是5,而不是9。为什么?
4条答案
按热度按时间ct2axkht1#
更改此行:
至:
您确实应该在所有脚本的开头使用
use strict;
和use warnings;
。ttcibm8c2#
每个人都在重复“使用警告”是有原因的;使用严格;“初学者。
这个脚本有六个问题,其中大部分问题都会在这样做时暴露出来。
在任何情况下,当你感到困惑时,第一步应该是确定到底发生了什么。正如上面有人提到的,基本错误是变量名中的一个错字。只要在你的sub中打印$x,$y的内容就可以说明这一点。
yjghlzjz3#
您已经将第一个数字定义为$choise,但是您要将它作为$choise1传入以进行加法运算。结果为0。因此,在您的示例中,0 + 5 = 5。
moiiocjp4#
修改的程序
输出::root@测试虚拟机:/home/test/Prasad_sample# perl sample_input.pl输入两个数字4 5
结果为9
代码中的以下$choise =行出现问题;
你提到了“$choise”而不是“$choise1”。你必须传递有效的参数给perl中的子例程。