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