my %hash=('ID' => { 'key1' => [ "key1_val1", "key1_val2" ], 'key2' => [ "key2_val1", "key2_val2" ] } ); foreach my $id (keys %hash ) { foreach my $keyno ( sort keys %{$hash{$id}} ) { for (my $keyvalno = 0; $keyvalno <= $#{$hash{$id}{$keyno}}; $keyvalno++) { print "$id - $keyno - $hash{$id}{$keyno}[$keyvalno]\n"; } } }