我在Perl中相当新,而且我一生都在和R一起工作,有些事我无法真正理解.
我有一系列哈希.在所有哈希中,键是相同的,但值是不同的.我想获得其中具有特定值的哈希的数量,因为在该哈希中有另外一个我想要的值(并且在不同的样本之间变化).
我不知道这是否应该解决这个问题,但我能想到的是这个问题.这是一个数组:
$VAR16 = {
'harmonized_name' => 'geo_loc_name',
'attribute_name' => 'geo_loc_name',
'content' => 'not determined',
'display_name' => 'geographic location'}
$VAR17 = {
'harmonized_name' => 'env_package',
'attribute_name' => 'env_package',
'content' => 'missing',
'display_name' => 'environmental package'}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我想要哈希的'content'值 'harmonized_name' = env_package
您可以使用grep筛选所有具有的数组元素'harmonized_name' = env_package,然后检查它们的值content,
use strict;
use warnings;
my @AoH = (
{
'harmonized_name' => 'geo_loc_name',
'attribute_name' => 'geo_loc_name',
'content' => 'not determined',
'display_name' => 'geographic location'
},
{
'harmonized_name' => 'env_package',
'attribute_name' => 'env_package',
'content' => 'missing',
'display_name' => 'environmental package'
}
);
my @result = grep { $_->{harmonized_name} eq "env_package" } @AoH;
print $_->{content}, "\n" for @result;
Run Code Online (Sandbox Code Playgroud)
产量
missing
Run Code Online (Sandbox Code Playgroud)