in reply to Is this a hash?

$thing will contain a hash reference, or more precisely, a reference to an anonymous hash constructed by the { ... } operator, which in this usage is a hash reference constructor.

You can refer to the hash as a reference ($thing), or as a hash (%{$thing} or %$thing), and you may refer to its individual elements by dereferencing it: $thing->{'a'}.

This would be a named hash:

my %thing = ( a => $a, b => $b, );

Dave