我有一个像这样的JSON文件(它是整个JSON文件的一部分):
{
id => "mgp1310",
samples => [
{
envPackage => {
data => {
diss_carb_dioxide => {
aliases => ["sediment_diss_carb_dioxide"],
definition => "concentration of dissolved carbon dioxide",
mixs => 1,
required => 0,
type => "text",
unit => "",
value => "17 mM",
},
},
id => "mge64559",
},
},
],
}
这已由模块JSON解码,使用:
use Data::Dumper;
use JSON;
open($fh, '<', 'hola.txt' );
$json_text = <$fh>;
$perl = decode_json($json_text);
print Dumper($perl);
现在我知道$perl
有一个哈希值。所以我想使用id
打印JSON文件的print $perl{"id"};
。然而,它打印出任何我不知道的原因。
答案 0 :(得分:5)
我通过在代码中添加use strict
找到了答案。它引发了以下错误:
Global symbol "%perl" requires explicit package name at json.pl line 12.
变量$perl
是标量,而不是哈希!当然......我没有想过这个。所以我无法访问哈希写$perl{"id"}
。正确的方法是$perl->{id}
。