/ / Décodage JSON en Perl [fermé] - json, perl, décodage

Décodage de JSON en Perl [fermé] - json, perl, décodage

J'ai un fichier JSON comme celui-ci (c'est une partie de l'ensemble du fichier 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",
},
},
],
}

Ceci a été décodé par le module JSON, en utilisant:

use Data::Dumper;
use JSON;

open($fh, "<", "hola.txt" );
$json_text   = <$fh>;
$perl = decode_json($json_text);
print Dumper($perl);

Maintenant je sais que $perl a un hash. Je souhaite donc imprimer le id du fichier JSON en utilisant print $perl{"id"};. Cependant, il n’imprime rien. Je ne sais pas pourquoi.

Réponses:

5 pour la réponse № 1

J'ai trouvé la réponse en ajoutant use strict à mon code. Il a jeté l'erreur suivante:

Global symbol "%perl" requires explicit package name at json.pl line 12.

La variable $perl est un scalaire, pas un hash! Bien sûr ... Je n’avais pas pensé à ça. Je ne peux donc pas accéder à l’écriture de hachage $perl{"id"}. La bonne façon est $perl->{id}.