如何访问Perl嵌套散列中的某些键?

问题描述:

我甩的数据结构:如何访问Perl嵌套散列中的某些键?

print Dumper($bobo->{'issues'}); 

,并得到:

$VAR1 = { 
    '155' => { 
     'name' => 'Gender', 
     'url_name' => 'gender' 
    } 
}; 

我怎样才能提取155

怎么样,如果我有:

$VAR1 = { 
    '155' => {'name' => 'Gender', 'url_name' => 'gender'}, 
    '11' => {'name' => 'Toddler', 'url_name' => 'toddler'}, 
    '30' => {'name' => 'Lolo', 'url_name' => 'lolo'} 
}; 

我想打印一个键,即第一或第二关键看的价值?

因此,根据您发布的例子,哈希看起来是这样的:

$bobo = { 
    issues => { 
     155 => { 
      name  => 'Gender', 
      url_name => 'gender', 
     }, 
    }, 
}; 

155”是在你的示例代码的关键。要提取密钥,您可以使用keys

my @keys = keys %{$bobo->{issues}};

但要获得值155索引,你可以说:

my $val = $bobo->{issues}{155};

然后$val将包含hashref,看起来像这样:

{ 
    name  => 'Gender', 
    url_name => 'gender' 
} 

有看看perldoc perlreftut

+0

感谢您的详细解答。实际上我只想一次打印一个键。看到我更新的问题part2。 – mamesaye 2012-04-27 16:39:43

+0

明白了!只需要通过数组@key – mamesaye 2012-04-27 16:55:18

它是由$bobo->{'issues'}引用的散列值中的一个关键字。所以你可以遍历

keys %{$bobo->{'issues'}} 

找到它。