小编Zac*_*ack的帖子

如何根据另一个哈希的键/值删除[sub]哈希?

让我们假设我有两个哈希.其中一个包含一组数据,只需要保留显示在另一个哈希中的内容.

例如

my %hash1 = ( 
        test1 => { inner1 => { more => "alpha", evenmore => "beta" } },
        test2 => { inner2 => { more => "charlie", somethingelse => "delta" } },
        test3 => { inner9999 => { ohlookmore => "golf", somethingelse => "foxtrot" } }
    );

my %hash2 = (
        major=> { test2 => "inner2",
              test3 => "inner3" }  );
Run Code Online (Sandbox Code Playgroud)

我想要做的是删除hash1中的整个subhash,如果它不作为hash2 {major}中的键/值存在,最好没有模块."innerX"中包含的信息无关紧要,只需要保持不变(除非删除子哈希然后它就会消失).

在上面的示例中,在执行此操作之后,hash1将如下所示:

my %hash1 = ( 
        test2 => { inner2 => { more => "charlie", somethingelse …
Run Code Online (Sandbox Code Playgroud)

perl hash perl-data-structures

4
推荐指数
1
解决办法
3455
查看次数

标签 统计

hash ×1

perl ×1

perl-data-structures ×1