in reply to Re-using a hash value in same hash?

The hash %HoH is not declared until the end of the statement in which it appears. That lets you do things like:
my $this = $this * 2; # use outer $this to initialize local inner $thi +s
But it's getting in your way here. You'll need to set up the hash as a series of actions, not as an initialization.

-- Randal L. Schwartz, Perl hacker