perlhashhash-of-hashes

Perl dynamic hash of hash errors


I am looping over a query and returning results. I am trying to add a hash to another hashes. But running into trouble.

my %users_data;
while($sth->fetch)
{
    $mygroup =>
    {
        'fname' => $fname,
        'lname' => $lname,
        'address' =>
        {
           'street' => $street,
           'city' => $city,
        },
        'id' => $uid,
     },
}

how do I add the $mygroup hash to %users_data hash?

long hand would be.

my %users_data = (
 'salesmanager' =>
 {
    'fname' => 'mike',
    'lname' => 'john',
    'address' =>
    {
       'street' => '123 street',
       'city' => 'Brooklyn',
    },
    'id' => 12,
 },
 'garagemanager' =>
 {
    'fname' => 'Mark',
    'lname' => 'Jones',
    'address' =>
    {
       'street' => '355 street',
       'city' => 'Brooklyn',
    },
    'id' => 13,
 },
)

Solution

  • Simply access the target key and assign its new value:

    my %users_data;
    while($sth->fetch)
    {
        $users_data{$mygroup} = {
            'fname' => $fname,
            'lname' => $lname,
            'address' =>
            {
               'street' => $street,
               'city' => $city,
            },
            'id' => $uid,
         };
    }