in reply to doubts on perl Hash

What you are dealing with is a structure that looks something like this:
my %_abc=( info => { env=> {Generic => { "Cat A" => "Value A", "Cat B" => "Value B" } } } );
Your code attempts to create or replace "Value A", and "Value B".

Your ideas are correct .. One individual KEY has a single VALUE.

However, that value can be a REFERENCE, which can contain an entire structure.

        Software efficiency halves every 18 months, thus compensating for Moore's Law.