我有一个像下面这样的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/