在perl中添加两个数字

时间:2014-01-07 12:20:07

标签: perl

我写了以下perl代码:

print "Enter two number \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 个答案:

答案 0 :(得分:8)

更改此行:

$res = add($choise1 , $choise2);

为:

$res = add($choise , $choise2);

你应该在所有脚本的开头use strict;use warnings;

答案 1 :(得分:3)

有一个原因,为什么每个人都在唠叨“使用警告;使用严格;”初学者。

这个脚本有六个问题,其中大部分都是通过这样做来揭示的。

在任何情况下,你困惑的第一步应该是确切地确定发生了什么。正如上面刚刚提到的那样,基本错误是变量名中的拼写错误。只需在你的sub中打印$ x,$ y的内容就会显示出来。

#!/usr/bin/perl
use warnings;
use strict;

print "Enter two number \n";
my $choise1 = <STDIN> ;
my $choise2 = <STDIN> ;
my $res = add($choise1 , $choise2);
print "\n and the result is $res\n" ;

sub add
{
    my ($x,$y) = @_;
    # printing $x,$y here would have shown the problem
    my $res = $x + $y ;
    return $res ;   
}

答案 2 :(得分:1)

您已将第一个数字定义为$ choise,但您将其传入以添加为$ choise1。这最终为0.所以在你的例子中,0 + 5 = 5。

答案 3 :(得分:0)

修改后的程序

     print "Enter two number \n";
    $choise1 = <STDIN> ;
    $choise2 = <STDIN> ;
    $res = add($choise1 , $choise2);
    print "\n and the result is $res" ;


    sub add
    {
        ($x,$y) = @_;
        $res = $x + $y ;
        return $res ;
    }

OUTPUT :: root @ test-virtual-machine:/ home / test / Prasad_sample #perl sample_input.pl 输入两个数字 4 5

,结果是9

以下代码中的代码出现问题 $ choise =;

你提到“$ choise”而不是“$ choise1”。你必须将有效参数传递给perl中的子程序。