perl - 快速过滤Perl哈希散列

标签 perl hash filter

我有一个像下面这样的perl哈希散列:

$VAR1 = {
          'ID_1' => {
                           'FILE_B' => '/path/to/file/file1',
                           'FILE_C' => '/path/to/file/file2',
                           'FILE_A' => '/path/to/file/file3'
                         },
          'ID_2' => {
                           'FILE_B' => '/path/to/file/file4',
                           'FILE_A' => '/path/to/file/file5'
                         },
          'ID_3' => {
                           'FILE_B' => '/path/to/file/file6',
                           'FILE_A' => '/path/to/file/file7'
                         }
          ...                       
}

我想获取已定义FILE_C的主哈希中成员的所有键的列表。在示例中,这将仅返回ID_1

我知道如何在繁琐的循环中执行此操作(迭代所有键,检查是否定义了FILE_C,如果是,则将键插入数组,最后返回该数组),但是我感觉到存在单线甚至是单线为此功能...

最佳答案

是的,perl具有grep函数:
my @keys = grep { defined $hash{$_}{FILE_C} } keys %hash;

关于perl - 快速过滤Perl哈希散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3649750/

相关文章:

perl - Perl 开发人员的基本知识要求是什么?

regex - 从文本文件中获取数据

VBA Excel : filter with "or" condtion between 2 columns

swift - 使用 swift xcode 返回自动建议搜索

perl - 如何在 Perl 中替换日期?

perl - Perl 中的闭包是如何工作的?

node.js - 为什么当我更改该文件的数据时,该文件的哈希值保持不变?

python - 通过 python 脚本启动开膛手约翰

python - 哈希算法 Node js vs Python

android - 如果没有结果,如何清理过滤后的 ListView