我正在尝试访问作为哈希一部分的数组元素。
for my $idx ( 0 .. $#vss ) {
push (@{$vsnhash->{$vss[$idx]}}, $vsports[$idx]);
}
print Dumper(\%$vsnhash);
($VAR1 = {
'name2' => [
'8001',
'8002'
],
'name1' => [
'8000'
]
};
我能够使用foreach循环访问密钥:
foreach my $key ( keys %$vsnhash ) {
print "$key\n";
}
如何在哈希中访问端口号数组('8001','8002')? 谢谢你的帮助!
答案 0 :(得分:5)
while (my ($k, $v) = each %$vsnhash) {
print "$k: @$v\n";
}
答案 1 :(得分:1)
foreach my $key ( keys %$vsnhash ) {
print "$key\n";
foreach my $port (@{$vsnhash->{key}}){
print "Port $port\n";
}
}
答案 2 :(得分:1)
$vsnhash{name2}->[0]; #8001
$vsnhash{name2}->[1]; #8002
$vsnhash{name1}->[0]; #8000
代码明智:
foreach my $key (sort keys %vsnhash) {
foreach my $index (0..$#{$key}) {
print "\$vsnhash{$key}->[$index] = " . $vsnhash{$key}->[$index] . "\n";
}
}
$#{$key}
表示数组@{$key
}中的最后一个条目。请记住,$key
是对数组的引用,而@{$key}
是数组本身。