我正在尝试为矩阵乘法编写脚本。它只是一个基本程序,但我无法弄清楚以下错误:
全局符号“@ref_mat1”在 multiplication.pl 第 49 行需要明确的包名称。
全局符号“@ref_mat2”在 multiplication.pl 第 49 行需要明确的包名称。
下面是我的脚本:
 #!/usr/bin/perl -w
    use strict;
     my @mat1=(
        [2,3,4],
        [1,2,3],
        [3,4,5]
            );
    my @mat2=(
            [2],
            [3],
            [4]
           );
    my ($i, $j, $k);
    my $r_product=[];
   $r_product= mat_multiplication(\@mat1,\@mat2);
    sub mat_multiplication
        {
         my ($ref_mat1,$ref_mat2)=@_;
         my($mat1_row,$mat1_col)=total_rows_column($ref_mat1);
         my($mat2_row,$mat2_col)=total_rows_column($ref_mat2);
             for($i=0;$i<$mat1_row;$i++)
            {
               for($j=0;$j<$mat2_col;$j++)
                {
                   my $sum=0;
                   for($k=0;$k<$mat1_col;$k++)
                    {
                      $sum=$sum+$ref_mat1[$i][$k]*$ref_mat2[$k][$j];
                    }
                    $r_product->[$1][$j]=$sum;
                }
            } 
            return $r_product;
        }
    sub total_rows_column
             { 
              my($r_mat) =@_;
              my $num_row=@{$r_mat};
              my $num_col=@{$r_mat->[0]};
              return($num_row,$num_col);
             }
我搜索了这个问题并找到了一个链接
但仍然无法解决它。请看看,让我知道我在哪里做错了。
谢谢