in reply to Doubt on hash keys

Because the parens just create a flat list. What you wrote is the same as:
my %hash = ( 'hi' => 'hello', 'all' => 'bye', 'later' => 'gone', ); print $hash{'all'};
If you want nested hash references you need to use {}. Like this:
my %hash = ( 'hi' => {'hello' => 'all'}, 'bye' => {'later' => 'gone'}, );
For more on nested data structures read references quick reference.