http://qs1969.pair.com?node_id=376443

envirodug has asked for the wisdom of the Perl Monks concerning the following question:

Howdy all-

Quick question for the monks ... I have a hash that is basically setup as follows:
%myhash = ( 'aNumber.aCharacters' => { 'bNumber.bCharacters' => { 'one' => $valA, 'two' => $valB, 'three' => $valC, 'four' => $valD, 'five' => $valE, 'six' => $valF } } );
I can print information I wish by making a call such as:
print $myhash{'1.AB'}{'2.AB'}{'one'}, "\n";
What I'd like to be able to do is sort the hash by the first key (aNumber.aCharacters in the first example ... 1.AB in the second print example). If possible, I would then like to sort by the second key ... then I would print/use the rest of the availble information ('one','two',etc...).

My problem is that I have many random possibilties for the first and second hash keys ... they could be anything similar to the following:
1.AB 121.ABC1 52.ABC2
I would like the sort to be 'by number' of the digits before the period. I'm not sure a simple 'cmp' or '<=>' will do the trick ... and I can't figure out what to do. I searched for 'multidimensional hash sorting' on this site, but none of the questions really covered this question.

So, I suppose the short version of this question: how can I sort the above hash using the digits before the period of the first two hash keys? :)