这是我尝试访问的结构
Dumper $resourceAudit
$VAR1 = '{
\'rh6\' => {
\'h\' => 1,
\'n\' => 1
},
\'win2k8\' => {
\'h\' => 1,
\'n\' => 1
},
\'win2k12\' => {
\'h\' => 3,
\'n\' => 3
},
\'win2k3\' => {
\'h\' => 0,
\'n\' => 1
},
\'usim\' => {
\'h\' => 4,
\'n\' => 4
}
}';
所以,我知道$ resourceAudit实际上是一个字符串,所以,%$resourceAudit
肯定会给我Can't use string as a HASH reference
错误。
有什么方法可以解决这个问题并访问'rh6'
密钥吗?
答案 0 :(得分:2)
$resourceAudit
不包含对哈希的引用;它包含一个字符串。该字符串是Perl代码,在执行时将返回对哈希的引用。您可以使用eval EXPR
运行Perl代码。
my $data = eval($serialized_data)
or die("Error executing audit code: $@");
... %$data ...