$ perl -e 'use JSON; use Data::Dump; my $x = do { local $/; <> }; dd(decode_json $x)' pm_1201279_input.json { def => [ { pos => "noun", text => "time", tr => [ { gen => "m", mean => [{ text => "day" }, { text => "moment" }], pos => "noun", syn => [ { gen => "f", pos => "noun", text => "volta" }, { gen => "m", pos => "noun", text => "momento" }, { gen => "m", pos => "noun", text => "Time" }, ], text => "tempo", }, ], ts => "taɪm", }, ], head => {}, } #### $ perl -e 'use JSON; use Data::Dumper; my $x = do { local $/; <> }; print Dumper decode_json($x)' pm_1201279_input.json $VAR1 = { 'def' => [ { 'text' => 'time', 'tr' => [ { 'syn' => [ { 'pos' => 'noun', 'text' => 'volta', 'gen' => 'f' }, { 'pos' => 'noun', 'text' => 'momento', 'gen' => 'm' }, { 'pos' => 'noun', 'text' => 'Time', 'gen' => 'm' } ], 'text' => 'tempo', 'gen' => 'm', 'pos' => 'noun', 'mean' => [ { 'text' => 'day' }, { 'text' => 'moment' } ] } ], 'pos' => 'noun', 'ts' => 'taɪm' } ], 'head' => {} }; #### $ perl -E 'use JSON; my $j = do { local $/; <> }; my $p = decode_json $j; say $p->{def}' pm_1201279_input.json ARRAY(0x7f8e1c881968) #### $ perl -E 'use JSON; my $j = do { local $/; <> }; my $p = decode_json $j; say $p->{def}[0]' pm_1201279_input.json HASH(0x7f89ee002e30) #### $ perl -E 'use JSON; my $j = do { local $/; <> }; my $p = decode_json $j; say for keys $p->{def}[0]->%*' pm_1201279_input.json ts pos tr text