Perl解析数组散列的散列

Perl解析数组散列的散列,perl,Perl,我试图解析包含数组散列的.dmp文件。我需要从数组中获取键值对,以便将它们存储到mysql数据库中。我试过几种方法,但都不能使它正常工作 文件中的代码如下所示: 我需要在数据库中每行存储一个数组散列 $VAR={ 'booktodo-yzi07mwp-1102021083' => { '_modtime' => [ 1102021143 ], 'version' => [ '25' ], 'pubnum' =&g

我试图解析包含数组散列的.dmp文件。我需要从数组中获取键值对,以便将它们存储到mysql数据库中。我试过几种方法,但都不能使它正常工作

文件中的代码如下所示: 我需要在数据库中每行存储一个数组散列

$VAR={  'booktodo-yzi07mwp-1102021083' => {
    '_modtime' => [
      1102021143
    ],
    'version' => [
      '25'
    ],
    'pubnum' => [
      '2332'
    ],
    '_status' => [
      'active'
    ],
    '_user' => [
      'lcm'
    ],
    'description' => [
      'Revise trademarks'
    ]
  },
  'booktodo-p8ekw9d3-1104950962' => {
    '_modtime' => [
      1104950986
    ],
    'version' => [
      '3.0'
    ],
    'pubnum' => [
      'S-2326-30'
    ],
    '_status' => [
      'active'
    ],
    '_user' => [
      'malz'
    ],
    'description' => [
      'Send out a request for install guide changes'
    ]
  },
这就是我目前所拥有的。我只是想访问数组中的元素 谢谢

#/usr/bin/perl
使用DBI;
严格使用;
使用数据::转储程序;
使用File::Slurp;
使用lib“$ENV{HOME}/modules/lib”;
我的%VAR;
#开放式DMP;
打开(文件“如何:

...
my $contents = <FILE>;
close(FILE);

my $hash_of_hashes_of_arrays = eval $contents;
...

请显示您尝试过的代码,以便我们提出更改建议。您的代码有两个问题:第一,
使用警告
!第二,您正在将文件内容读入
%VAR
。使用
警告
,您将收到“奇数元素”警告。由于
未定义$`您将其全部读入f
%VAR
(您的
文件::Slurp
?).试试
print Dumper\%VAR`你就会明白我的意思。看看怎么做。谢谢。我会尽力理解你在这里做了什么,然后再试一次。稍微解释一下,这样OP就可以知道问题所在。你应该指出使用字符串的安全风险。
...
my $contents = <FILE>;
close(FILE);

my $hash_of_hashes_of_arrays = eval $contents;
...
for my $key (keys %$hash_of_hashes_of_arrays) {
  my $hash = $hash_of_hashes_of_arrays->{$key};
  for my $key2 (keys %$hash) {
    my $array = $hash->{$key2};
    for my $i (0..$#$array) {
      print "$i: $$array[$i]\n";
    }
  }
}