행렬 곱셈을위한 스크립트를 작성하려고합니다.오류 - '전역 기호는 명시 적 패키지 이름이 필요합니다'
전역 기호 "@의 ref_mat1"는 "ref_mat2 @"multiplication.pl 줄에서 49
전역 기호를 명시 적으로 패키지 이름이 필요합니다 : 그것의 단지 기본 프로그램 그러나 나는 다음과 같은 오류에 대해 그것을 알아낼 수 없습니다입니다 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)[email protected]_;
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) [email protected]_;
my [email protected]{$r_mat};
my [email protected]{$r_mat->[0]};
return($num_row,$num_col);
}
내가이 문제를 검색 한 링크를 발견
Explanation of 'global symbol requires explicit package name'
그러나 여전히 해결할 수 없습니다. 제발 실수를하고있는 곳을 알려주세요.
감사
미안하지만 난 그렇게하지 않은 이유는 저놈 질문을 받아들이는 방법을 모르는 – Maverick