【发布时间】:2010-08-26 06:36:01
【问题描述】:
假设我有这样的哈希:
$hash_ref = {
'hashes' => {
'h1' => { 'klf' => '1', 'moomooland' => '1' },
'h2' => { 'klf' => '2', 'moomooland' => '2' },
'h3' => { 'klf' => '3', 'moomooland' => '3' }
},
'keys' => {
'k1' => 'key1',
'k2' => 'key2',
'k3' => 'key3'
}
}
我怎样才能尽可能简单地找出 hashes 包含 3 个以上的哈希值,而 keys 包含 3 个键/值对?
ref 将为它们返回HASH,我不确定是否有可能找出这些散列的深度。
谢谢:)
【问题讨论】:
-
是的,有可能,但我想知道你为什么想知道这个。这可能有助于确定合适的行动方案。例如你想返回最深的链,还是所有不同分支的深度?
-
我需要知道这一点,以便我可以根据我得到 3 个哈希值还是 3 个键/值对来调用不同的操作。所以,如果我能以其他方式区分这两者,我不一定需要知道确切的深度。我现在看到您指向其他问题的链接,但我希望这可以在不使用递归的情况下完成:)
-
这不是完全重复的,但是可以调整那里列出的方法来计算级别数。没有内置的方法可以做到这一点。
-
我经常使用 Data::Dumper 来转储数据,但我不知道在这种情况下如何使用它。