我有一个与两个一起工作的子程序。我可以在子程序中调用子程序吗?
答案 0 :(得分:3)
最简单的方法是进行一些递归 - 只需改变它:
my $ref1 = $_[0];
my $ref2 = $_[1];
到此:
my $ref1 = shift;
my $ref2 = shift;
和此:
return @product;
到此:
if(@_ > 0)
{ return &matrix(\@product, @_); }
else
{ return @product; }
但最有效的方法是首先检查各种数组的维数,从而确定执行乘法的最佳顺序。 (数组乘法虽然不是可交换的,但是是关联的,如果不是所有数组都具有相同的维度,那么A(BC)
可能比(AB)C
贵得多,或者便宜得多。例如,如果尺寸是1乘100,100乘1和1乘100,然后(AB)C
创建1乘1矩阵作为中间步骤,而A(BC)
创建100 -by-100矩阵作为中间步骤。)