我可以通过将其分配到一个标量得到一个数组的元素计数:获取多个阵列的总元素计数
my $size = @array1;
我怎么能拿5个阵列的总规模在同一时间?
my $size = @array1,@array2,@array3,@array4,@array5;
我可以通过将其分配到一个标量得到一个数组的元素计数:获取多个阵列的总元素计数
my $size = @array1;
我怎么能拿5个阵列的总规模在同一时间?
my $size = @array1,@array2,@array3,@array4,@array5;
如果你想数组长度的总和,
my $size = @array1 + @array2 + @array3 + @array4 + @array5;
或效率低的替代品,
# in scalar context map returns number of elements
my $size = map 1, @array1,@array2,@array3,@array4,@array5;
# make new array and dereference it (in scalar context)
my $size = @{[ @array1,@array2,@array3,@array4,@array5 ]};
非常感谢你 – user3717017
你试过了吗?结果是什么?请注意,您的选项1相当于
my $size = @array5;
当您每次创建一个新变量时。
我假设你想要所有阵列的大小在一起。
数组返回它们在标量上下文中的大小。列表不,它们返回它们的最后一个元素。
因此,
my $size = (@array1, @array2);
返回@数组2的大小。 (没有括号,它返回@ array1的大小)。
您可以使用
my $size = @array1 + @array2;
+运算力标量上下文。
如果你想要,而不是大小的数组,使用
my @sizes = map scalar @$_, \@array1, \@array2;
感谢您的回复... – user3717017
是你想在这里实现什么行为? – Kaoru