微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在perl中过滤散列哈希

我有一个哈希哈希,我需要过滤.我确实找到了如何进行查找,但它没有回答我的问题.

假设我有一个像这样的散列哈希:

my %HoH = (
    flintstones => {
        husband   => "fred",pal       => "barney",town      => "springfield"
    },jetsons => {
        husband   => "george",wife      => "jane","his boy" => "elroy",},simpsons => {
        husband   => "homer",wife      => "marge",kid       => "bart",town      => "springfield",);

我想说我想要所有来自斯普林菲尔德的城镇居民.我想在输出中使用相同的哈希哈希,而不需要局外人.

my %HoH = (
    flintstones => {
        husband   => "fred",);

它似乎很傻但无法弄清楚如何过滤结构.目标是在过滤后迭代所有的斯普林菲尔德人.

我当然做了一些研究,我最接近的是哈希切片.
但他们似乎很可怕.

解决方法

首先需要找到要删除的元素的键:
grep { $HoH{$_}{town} eq 'springfield' } keys(%HoH)

然后你删除它们:

delete $HoH{$_} for grep { $HoH{$_}{town} eq 'springfield' } keys(%HoH);

或者使用哈希切片:

delete @HoH{ grep { $HoH{$_}{town} eq 'springfield' } keys(%HoH) };

原文地址:https://www.jb51.cc/Perl/171622.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐