in reply to What data structure is this and how to access?

Work from the inside out.

To access a hash element, you'd write $hash{key}. But you may replace the name of the hash with a block that returns a reference to a hash: ${$hashref}{key}. In this case, the first element of @TestVals is a reference to a hash, so we get: ${$TestVals[0]}{key}. Filling in the key gets you: ${$TestVals[0]}{A}.

Now, optionally, you may want to use some shortcuts. ${EXPRESSION}{key} may also be written as (EXPRESSION)->{key}, so, in your case, ($TestVals[0])->{A}. The parens aren't necessary in this case, leading to $TestVals[0]->{A}. Finally, there's a second short cut. Whenever you have [INDEX]->[INDEX], [INDEX]->{INDEX}, {INDEX}->[INDEX], or {INDEX}{INDEX}, you may drop the arrow. This leads to $TestVals[0]{A}.

But do keep in mind that $TestVals[0]{A} is a shortcut for the formal ${$TestVals[0]}{A}. (I always find it funny that neither the shortcut, nor the formal way use an arrow, but the intermediate form does).