gpt4 book ai didi

perl - 使用 for/foreach 访问数组引用数组的正确语法是什么

转载 作者:行者123 更新时间:2023-12-02 06:33:16 27 4
gpt4 key购买 nike

给定:

my @main_array = ();

my @sub_array1 = ( 1, 2, 3, 4, 5);
my @sub_array2 = ( "a", "b", "c", "d", "e" );

push @main_array, \@sub_array1;
push @main_array, \@sub_array2;
print "size of main_array is ",scalar(@main_array),"\n";

我想遍历 main_array 和然后通过它包含的两个数组进行foreach我不知道它的语法是什么。

不知道这是否正确,但 Perl 似乎希望在foreach 变量在这里。 (不喜欢@$sub_array)我还想知道 for 循环遍历 main 和 sub 的语法。

foreach my $sub_array (@main_array)
{
print $sub_array; # prints ARRAY(0x213232)
# loop through each item in sub array
#foreach ...
}

编辑:所以总结下面给出的答案(感谢所有人):

use strict;
use warnings;

my @main_array = ();

my @sub_array1 = ( 1, 2, 3, 4, 5);
my @sub_array2 = ( "a", "b", "c", "d", "e" );

push @main_array, \@sub_array1;
push @main_array, \@sub_array2;
print "size of main_array is ",scalar(@main_array),"\n";

print "--------foreach ---------------------\n";

foreach my $sub_array (@main_array)
{
print "Sub array has ", scalar(@{$sub_array})," elements\n";
foreach my $value ( @{$sub_array})
{
print "value: ",$value,"\n";
}
}

print "--------------- for ----------------------- \n";

for (my $i = 0; $i < scalar(@main_array); $i++)
{
my $sub_array = $main_array[$i];
print "Sub array has ", scalar( @{$sub_array}), " elements\n";
for (my $j = 0; $j < scalar( @{$sub_array}); $j++)
{
print "value: ", $sub_array->[$j],"\n";
}
}

最佳答案

my $sz = 0;
for my $outer (@main_array) {
for my $inner( @{ $outer } ) {
print $inner;
$sz++;
}
}

print "total number of all values held in main_array is $sz \n";

perllol 和 perldsc 是关于这些问题的很好的信息来源

用于调试 使用 Data::Dumper; print Dumper(\@main_array) 很有用

希望对你有帮助

关于perl - 使用 for/foreach 访问数组引用数组的正确语法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27382478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com