/ / Decoding JSON in Perl [closed] - json, perl, decoding

Decodifica JSON in Perl [closed] - json, perl, decoding

Ho un file JSON come questo (è un pezzo dell'intero file 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",
},
},
],
}

Questo è stato decodificato dal modulo JSON, usando:

use Data::Dumper;
use JSON;

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

Ora lo so $perl ha un hash. Quindi mi piacerebbe stampare il id del file JSON usando print $perl{"id"};. Tuttavia, non stampa nulla, non so perché.

risposte:

5 per risposta № 1

Ho trovato la risposta aggiungendo use strict al mio codice. Ha lanciato il seguente errore:

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

La variabile $perl è uno scalare, non un hash !. Certo ... non ci avevo pensato, quindi non posso accedere alla scrittura hash $perl{"id"}. Il modo corretto è $perl->{id}.