use strict; use warnings; my $book = { 'key' => {'data' => [ [ 'Element1', 'Element2', 'Element3' ], [ 'Element1', 'Element2', 'Element3' ] ] } }; for my $key (keys %$book){ for my $data ( keys %{ $book->{$key} } ){ for my $inner_array_ref ( @{ $book->{$key}{$data} } ) { ## Array above can also be written as: @{ $book->{$key}->{$data} } print "$key\t$data\t@$inner_array_ref\n"; } } }