我正在尝试编写一个在perl中将两个矩阵(实现为双数组)相加的程序。
我确定有一些功能可以为我做,但这是一个家庭作业,所以我需要自己做。
我的问题,我确定,是在语法中。你能解释我做错了吗?
sub matrix_add {
my @matrix1 = $_[0];
my @matrix2 = $_[1];
for my $x (0 .. $#matrix1){
my @line1 = @matrix1[$x];
my @line2 = @matrix2[$x];
for my $y (0.. $#line1){
@line1[$y] += @line2[$y];
}
}
return @matrix1
}
我没有收到任何错误,但是当我打印出数组时,我打印出了我认为是引用的内容:
ARRAY(0x508a24)ARRAY(0x508b44)
其他信息:
我宣布这样的矩阵:
my @matrix = (
[0, 1],
[2, 3]
);
并使用双人打印出来。
答案 0 :(得分:4)
您只能将数组引用传递给函数
sub matrix_add {
my ($matrix1, $matrix2) = @_;
稍后在函数中使用@$matrix1
,@$matrix2
。