gpt4 book ai didi

perl - 查找多维数组大小

转载 作者:行者123 更新时间:2023-12-01 05:39:36 25 4
gpt4 key购买 nike

()有什么区别在 Perl 中与 []例如,当数组使用方括号时,如何找到数组的大小?

my @myarr = ( # Parenthesis
[ "itemone", "itemoneb", "itemonec" ],
[ "itemtwo", "itemtwob", "itemtwoc" ]
);

my @myarr = [ # Square bracket
[ "itemone", "itemoneb", "itemonec" ],
[ "itemtwo", "itemtwob", "itemtwoc" ]
];

谢谢你的解释。我仍在努力理解这一点,目前这让我有点困惑。我仍然无法弄清楚如何在这里迭代我的数据:
#!/usr/bin/perl -w

use strict;
use FindBin qw($Bin);
use Cwd;
use Data::Dumper;

my @mynames = (
[ "myname", "mydescription", "mydata"],
[ "myname2", "mydescription2", "mydata2"],
[ "myname3", "mydescription3", "mydata3"],
);


go();

sub go {
start(\@mynames);
}

sub start {
my @input_name = shift;

# This works
#print @input_name->[0][0][0];
#die;

# This Shows
#print Dumper(@input_name);
#$VAR1 = [
# [
# 'myname',
# 'mydescription',
# 'mydata'
# ],
# [
# 'myname2',
# 'mydescription2',
# 'mydata2'
# ],
# [
# 'myname3',
# 'mydescription3',
# 'mydata3'
# ]
# ];

# How do I iterate?
#for my $i (0..@$input_name) {
# my $name = "";
# my $description = "";
# my $data = "";
#
#}
}

最佳答案

这是错误的:

my @myarr = [
[ "itemone", "itemoneb", "itemonec" ],
[ "itemtwo", "itemtwob", "itemtwoc" ]
];
它应该是:
my $myarr = [
[ "itemone", "itemoneb", "itemonec" ],
[ "itemtwo", "itemtwob", "itemtwoc" ]
];
上面是“$myarr”。方括号将返回对标量列表的引用。因此需要使用“$”而不是“@”。
或者
my @myarr = (
[ "itemone", "itemoneb", "itemonec" ],
[ "itemtwo", "itemtwob", "itemtwoc" ]
);
上面是“()”而不是“[]”。 “()”将返回列表,因此它需要“@”。
检查以下迭代 AoA 的代码。这样您就可以访问 AoA 的所有元素。以及单个元素:
#!/usr/bin/perl -w
use strict;

my @mynames = (
[ "myname", "mydescription", "mydata"],
[ "myname2", "mydescription2", "mydata2"],
[ "myname3", "mydescription3", "mydata3"],
);

### To access all the elements in above AoA
foreach my $a (@mynames)
{
foreach my $b ( @{$a} )
{
print $b."\t";
}
print "\n";
}
print "====================================\n";

### To access individual elements:
print $mynames[1][2]."\n"; ### It prints mydata2
您可能想阅读 perlref学习和理解 Perl 引用和嵌套数据结构。

关于perl - 查找多维数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13133802/

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