I wouldn't have even expected that to work. Briefly: $config->acls returns a hashref. So far so fine. You can dereference it with
my %hash = %{ $config->acls }; # to get a full hash,
# and
my $item = $config->acls->{thatkey}; # to get a single element.
Now the first element is possibly a bit deceiving, because it would work even if the hashref was "converted" to the flattened list of its pairs, whereas the rvalue is a hash at all effects, so that it can directly used e.g. with each and keys, like it was already explained to you.
Whatever, accessing elements as per the second example, still involves method calls, and although I, like so many others, recommend all the time not to bother about alleged optimizations, that feels somewhat unsatisfactory. Personally, I'd just assign to a suitably lexically scoped hash say, %tmp for convenience. YMMV. |