use warnings; use strict; use Data::Dumper; use JSON::PP qw/decode_json/; my $json = <<'JSON'; { "myData" : [ { "Lang4":"ok", "Lang9":"well", "Lang7":null, "Lang6":null }, { "Lang4":"one", "Lang9":"two", "Lang7":null, "Lang6":null } ] } JSON my $data = decode_json( $json ); my $definition= $data->{'myData'}; my @definition=@$definition; print Dumper \@definition; foreach my $record (@definition) { print $record->{Lang4}, "\n"; } #### $VAR1 = [ { 'Lang6' => undef, 'Lang9' => 'well', 'Lang4' => 'ok', 'Lang7' => undef }, { 'Lang6' => undef, 'Lang9' => 'two', 'Lang7' => undef, 'Lang4' => 'one' } ]; ok one