获取哈希值

时间:2015-09-01 08:08:05

标签: arrays perl hash

我在Perl中相当新,并且我一直与R一起工作,有些事我无法真正理解。





我有一系列哈希。在所有哈希中,键是相同的,但值是不同的。我想得到其中具有特定值的哈希的数量,因为在该哈希中还有我想要的另一个值(并且在不同的样本中有所不同)。





我不知道这是否是我应该解决的方式,但我能想到的是这个。这是一个数组:




  $ VAR16 = {
 'harmonized_name'=> 'geo_loc_name',
 'attribute_name'=> 'geo_loc_name',
 'content'=> '没有决定',
 'display_name'=> '地理位置'}
 $ VAR17 = {
 'harmonized_name'=> 'env_package',
 'attribute_name'=> 'env_package',
 'content'=> '丢失',
 'display_name'=> 'environment package'}
  




在这个例子中,我希望哈希的'content'值具有'harmonized_name '= env_package




1 个答案:

答案 0 :(得分:6)

您可以使用<route id="db-import-route"> <from uri="timer://queryTimer?period=2s" /> <setBody> <constant> SELECT * FROM address </constant> </setBody> <to uri="jdbc:dataSource" /> <split> <simple>${body}</simple> <process ref="SqlDecoder" /> <process ref="Validator" /> </split> </route> 过滤所有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;