in reply to tieing HoH

That's because you have tied the top level hash. In order for Perl to store a value into $hash {toby} {ip}, Perl first has the fetch $hash {toby}, and that's the FETCH you are seeing.

What you should be doing is tie the top level hash to another class, where a FETCH first looks if there's already a value - if not, it creates a tied hash (of your original class) first.

Abigail