Your getVarHash()
method return a hash reference. And when you dereference the hash and look at the contents, you see that it contains references to other hashes.
Actually, those second level hashes aren't just ordinary hash references - they are blessed hashes. You can see that from the Variable=
in front of the hash reference in your output. A "blessed hash" is an object. So what you have here are a number of objects of the "Variable". That doesn't seem to be a standard Perl class so, hopefully, you'll have documentation somewhere on how to use this class.
You should really treat objects as black boxes and use the published interface to access the data inside them. But you can treat them as normal hash references if necessary.
The easiest way to see what is in a complex data structure like this, is to use something like Data::Dumper to display the structure.
use feature 'say';
use Data::Dumper;
say Dumper $vars->getVarHash();
Perl has plenty of good documentation on how to understand and manipulate complex data structures. I recommend taking a look at the Data Structures Cookbook.