数组的perl哈希

dar*_*s33 3 arrays perl hash

我试图访问作为哈希的一部分的数组的元素.

for my $idx ( 0 .. $#vss ) {
    push (@{$vsnhash->{$vss[$idx]}}, $vsports[$idx]);
}
print Dumper(\%$vsnhash);

($VAR1 = {
      'name2' => [
                   '8001',
                   '8002'
                 ],
      'name1' => [
                   '8000'
                 ]
    };
Run Code Online (Sandbox Code Playgroud)

我能够使用foreach循环访问密钥:

foreach my $key ( keys %$vsnhash ) {
print "$key\n";
}
Run Code Online (Sandbox Code Playgroud)

如何在哈希中访问端口号('8001','8002')数组?
感谢您的帮助!

Eug*_*ash 5

while (my ($k, $v) = each %$vsnhash) {
    print "$k: @$v\n";
}
Run Code Online (Sandbox Code Playgroud)

  • @FailedDev:实际上它很简单.`each`就像`keys`,但同时给你键和值.`@ $ v`是`@ {$ v}`的缩写,并取消引用数组引用. (2认同)