您好我将Perl哈希定义为:
foreach my $pair (@correlatedPttns)
{
# slice the data out
my @tmp = ();
for (my $x = 0; $x<$cnt; $x++)
{
push @tmp,[ @{ $data[$x] } [ 0, @$pair[0], @$pair[1] ] ]; # epochtime, Pi, Pj
}
#build hash
$pairToDataHash{Dumper(@$pair)} = \@tmp;
}
如果输出哈希值,打印Dumper(\%pairToDataHash),它将如下所示:
$VAR1 = {
'$VAR1 = 30;
$VAR2 = 31;
' => [
[
'TIME',
'P30',
'P31'
],
[
'1398038853',
'0',
'0'
],
如何获取单个键,因为键是通过Dumper形成的数组。我需要访问$ VAR1 = 30的值。我如何获得密钥元素?
for ( keys %pairToDataHash)
{
#get the key element value.
}
答案 0 :(得分:1)
Data :: Dumper是一个调试工具。在这里使用是不合适的。
看起来你有一对整数,所以只需使用
$pairToDataHash{ join ':', @$pair }
和
for ( keys %pairToDataHash ) {
my @pair = split /:/;
...
}
如果您有浮点数,请使用
$pairToDataHash{ pack 'd*', @$pair }
和
for ( keys %pairToDataHash ) {
my @pair = unpack 'd*';
...
}
答案 1 :(得分:-1)
没有评论您的方案哈希键是否可以改进...
Data::Dumper
的输出适合传递给Perl的eval
函数。
for ( keys %pairToDataHash)
{
my ($VAR1,$VAR2); # required for 'use strict'
eval $_;
... now $VAR1, $VAR2 are loaded
}