如何在Perl中迭代Hash(Hashes)? [英] How to iterate through Hash (of Hashes) in Perl?

查看:158
本文介绍了如何在Perl中迭代Hash(Hashes)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有Hash,其中的键值是其他哈希。

I have Hash where values of keys are other Hashes.

示例: {'key'=> {'key2'=> {'key3'=> 'value'}}}

如何迭代这个结构?

How can I iterate through this structure?

推荐答案

这是你想要的吗? (未经测试)

Is this what you want? (untested)

sub for_hash {
    my ($hash, $fn) = @_;
    while (my ($key, $value) = each %$hash) {
        if ('HASH' eq ref $value) {
            for_hash $value, $fn;
        }
        else {
            $fn->($value);
        }
    }
}

my $example = {'key' => {'key2' => {'key3' => 'value'}}};
for_hash $example, sub {
    my ($value) = @_;
    # Do something with $value...
};

这篇关于如何在Perl中迭代Hash(Hashes)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆