gpt4 book ai didi

perl - 如何建立哈希数据结构

转载 作者:行者123 更新时间:2023-12-02 21:54:38 26 4
gpt4 key购买 nike

我无法弄清楚如何创建多个 %th2 结构(见下文),每个结构的值都是 $th1{0}$th1{1},依此类推。

我还试图找出如何遍历第二个哈希 %th2 中的键。我遇到了 SO 中经常讨论的错误,

在使用“严格引用”时不能使用字符串(“1”)作为 HASH 引用

此外,当我将 %th2 分配给 %th1 中的每个键时,我假设它被作为匿名复制到 %th1 中哈希,并且在重复使用 %th2 时我不会覆盖这些值。

use strict;

my %th1 = ();
my %th2 = ();
my $idx = 0;

$th2{"suffix"} = "A";
$th2{"status"} = 0;
$th2{"consumption"} = 42;

$th1{$idx} = %th2;

$idx++;

$th2{"suffix"} = "B";
$th2{"status"} = 0;
$th2{"consumption"} = 105;

$th1{$idx} = \%th2;

for my $key1 (keys %th1)
{
print $key1."\n\n";
for my $key2 (keys %$key1)
{
print $key2->{"status"};
}

#performing another for my $key2 won't work. I get the strict ref error.
}

最佳答案

更改:

$th1{$idx} = %th2;

至:

$th1{$idx} = \%th2;

然后您可以将循环创建为:

for my $key1 (keys %th1) {
for my $key2 (keys %{$th1{$key1}} ) {
print( "Key1=$key1, Key2=$key2, value=" . $th1{$key1}->{$key2} . "\n" );
}
}

或者..更明确地说:

for my $key1 (keys %th1) {
my $inner_hash_ref = $th1{$key1};

for my $key2 (keys %{$inner_hash_ref}) {
print( "Key1=$key1, Key2=$key2, value=" . $inner_hash_ref->{$key2} . "\n" );
}
}

关于perl - 如何建立哈希数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969791/

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