我想創建一個數組的散列。我如何訪問/打印整個陣列?下面是代碼:在Perl中哈希陣列
my %data;
my @row = ("My", "Name", "is", "Anthony", "Gonzalves");
print "@row";
$data{'First'} = \@row;
print "@data{'First'}";
上述代碼的輸出是: 我的名字是安東尼GonzalvesARRAY(0x7fa1a5831dc8)。
我想創建一個數組的散列。我如何訪問/打印整個陣列?下面是代碼:在Perl中哈希陣列
my %data;
my @row = ("My", "Name", "is", "Anthony", "Gonzalves");
print "@row";
$data{'First'} = \@row;
print "@data{'First'}";
上述代碼的輸出是: 我的名字是安東尼GonzalvesARRAY(0x7fa1a5831dc8)。
在您的代碼中,$data {First}
是參考到一個數組。要訪問元素(所有元素,作爲列表),您可以用@{}
來回避它。所以:
foreach my $element (@{$data {First}}) {
print $element;
}
或者更短,並打印在其自己的行每一個元素:
use 5.010;
say for @{$data {First}};
歡迎來到Stack Overflow!很高興在這裏有另一位高級社區人員:) – simbabque
您應該使用@{}
訪問數組的ref:
%HoA=(
flintstones =>["fred","barney"],
);
$HoA{teletubbies}=["tinky winky","dipsy","laa-laa","po"];
for $family (keys %HoA){
print "$family: @{$HoA{$family}}\n";
}
輸出是:
simpsons: homer Marge bart
teletubbies: tinky winky dipsy laa-laa po
'$ data {'First'}'是一個re對數組的支持。你需要'print'@ {$ data {'First'}}「;' – ikegami
通過教程[perlreftut](https://perldoc.perl.org/perlreftut.html)和cookbook [perldsc](https:// perldoc.perl.org/perldsc.html) – zdim