【发布时间】:2016-12-11 18:02:54
【问题描述】:
我正在尝试编写一个 Perl 子例程来处理任何给定的哈希(通过引用传递),但我想让它成为一个通用的,以便我可以在任何地方使用它。
假设散列具有简单的键/值对并且不是详细记录(包含数组数组或散列数组),有没有办法找出散列的散列运行深度?
例如
my %stat = (
1 => { one => "One is one.", two => "two is two"},
2 => { one => "second val wone", two => "Seconv v"}
);
上面的哈希有一级键1,它有两个键one和two。所以它是一个有两个级别的哈希。
我的问题是,是否有任何方法可以测试并找到哈希有两个级别的信息?
评论更新
关于“让我相信我需要知道 Perl 哈希嵌套深度的问题”。这是我的情况。
-
该程序正在创建一个三层的数据结构,并将其发布到一个文本文件中,以供其他脚本处理此发布的数据并执行其他操作。
-
程序也在读取和散列其他五级数据结构,其中有与第一个点的散列相关的数据。
-
该程序还在处理不断增长的日志文件并收集数据。
【问题讨论】:
-
知道它的运行深度如何帮助您制作通用子程序?
-
我不明白你想问什么。哈希哈希的“深度”是什么意思?
-
你的意思是你想找到任意 HoH 的深度?首先决定如何计算周期的深度。然后以通常的方式编写 DFS 并计算深度标签。如果你试一试,它不起作用,然后你发布代码,你可能会得到一些有用的帮助。
-
这感觉像是一个可能的 XY 问题。你想达到什么目的?
-
@UselessPerson: “所以为每个人编写 foreach 循环是一件苦差事” 然后你需要编写一些代码,而不是计算间接级别,实际上执行您需要的操作。我同意
@Sobrique:如果您需要适当的帮助,那么您必须描述您的最终目标。你选错了方法:42 对任何人都没有用。
标签: perl hash-of-hashes