in reply to Assignment of hash to hash doesn't work?

See perlreftut and perlref - what you've actually got with @recordset_TA_SITE is an array of references to hashes. What the statement $site = $recordset_TA_SITE[0]; does is copy the hash reference from the array element to $site, and since $site is now a reference to a hash, you have to dereference it, like this: $site->{'Age'}. If you had used use warnings; use strict; at the top of your script, you would have likely gotten an error, because $site and $site{'Age'} are two entirely different variables - the latter is the hash %site.