$somehash{a1}{justtest}{value1}=1 $somehash{a1}{justtest}{value2}=2 $somehash{a1}{justtest}{value3}=3 $somehash{a2}{justtest}{value1}=1 $somehash{a2}{justtest}{value2}=2 $somehash{a2}{justtest}{value3}=3 . . . #### a1:1 a1:2 a1:3 a2:1 a2:2 a2:3 #### foreach $key1 (sort keys %somehash) { # here is where I don't know how to loop through all the 'value1,value2,value3'.Consider those would not necessarily be name the same way. }