in reply to Populating and accessing complicate Hashes
The sample data would help. I recommend that you use a __DATA__ section and replace <CDF> with <DATA> for the purposes of this post.
Note that you really should use strict; use warnings; in all code you write!
Where does %basic_references come from? Where is %main_hash declared?
Update: more grumbling
DWIM is Perl's answer to Gödel