my %test = ('a' => {'b' => 'c'}); while ( my($name1, $value1) = each %test ) { print "$name1:\n"; if(ref $value1 eq 'HASH') { while ( my($name2, $value2) = each %$value1 ) { print " $name2: $value2\n"; } } else { print "$value1\n"; } }