我正在使用perl尝试pascals三角形。我得到的输出有点不同。有人能指出错误是什么吗?

我正在使用perl尝试pascals三角形。我得到的输出有点不同。有人能指出错误是什么吗?,perl,loops,Perl,Loops,我的节目是- @arr=('1','1 1'); print "enter the number of rows\n"; $rows=<STDIN>; $v=0; while($v<$rows) { foreach $ele (@arr) { @arr1=split(/\s+/,$ele); $g=@arr1; #print "$g\n"; $i=0;

我的节目是-

@arr=('1','1  1');
print "enter the number of rows\n";
$rows=<STDIN>;
$v=0;
while($v<$rows)
{
     foreach $ele (@arr)
        {
          @arr1=split(/\s+/,$ele);
          $g=@arr1;
          #print "$g\n";
          $i=0;
          $j=1;
          $str='';
          while ($j<$g)
             {
                $res=$arr1[$i]+$arr1[$j];
                #print "$res\n";
                $i=$1+1;
                $j=$j+1;
                $str=$str.' '.$res;

            }

        $final='1'.' '.$str.' '.'1';
        print "$final\n";


}
$v=$v+1;
#@arr=();
push(@arr,$final);
}

print "@arr";

foreach (@arr)
{

    print "$_\n";
}
最后一行的8应该是10。但是为什么会这样呢?

问题在于:

$i=$1+1;
您想使用
$i
而不是
$1


你应该用,他们会告诉你的。

我犯了一个打字错误。我没有用$I=$I+1,而是用$I=$1+1

$i=$1+1;