I am using DBM::Deep for the reason it support multilevel hashes, however I
ended up in situation where I am getting error while retrieving values from
keys :-
Can't use string ("test1") as a HASH ref while "strict refs"
use Parallel::ForkManager;
use DBM::Deep;
my $db = new DBM::Deep(
file => "userdata.db",
locking => 1,
autoflush => 1
);
passed this ref to a subroutine...
where I input the values as :-
$entry->{'name'} = $name;
$entry->{'id'} = $id;
$users->{'pending'}->{$entry->{'name'}}->{'email'}=$name;
$users->{'pending'}->{$entry->{'name'}}->{'id'}=$id;
return $users;
and in other routine I get values :
foreach my $acct (keys %{$users->{pending}}) {
print $acct->{id};
}
However I get error saying :-
Can't use string ("user1") as a HASH ref while "strict refs" in use
The Dumper o/p of $db is :-
$VAR1 = bless( {
'pending' => bless( {
'user1' => bless( {
'email' => '[email protected]',
'id' => '123'
},
'DBM::Deep::Hash' ),
'user2' => bless( {
'email' => '[email protected]',
'id' => '343'
}, 'DBM::Deep::Hash' ),
'user3' => bless( {
'email' => '[email protected]',
'id' => '443'
}, 'DBM::Deep::Hash' ),
},
'DBM::Deep::Hash' )
}, 'DBM::Deep::Hash' ),
}, 'DBM::Deep::Hash' );
Is there something I am doing wrong ?
Thanks and Regards.