$ cat t.pl use strict; use warnings; use Data::Dumper; use JSON; my $text; { local $/;$text= }; my $junk = decode_json($text); print Dumper($junk); __DATA__ { "1": { "subject1": "value", "subject2": [ { "subject3": "value", "subject4": "value" } ], "subject5": "value", "subject6": "value", "subject7": "value" } } $ perl t.pl $VAR1 = { '1' => { 'subject7' => 'value', 'subject2' => [ { 'subject4' => 'value', 'subject3' => 'value' } ], 'subject5' => 'value', 'subject1' => 'value', 'subject6' => 'value' } };