in reply to weird problem or perl-bug?

My guess is, that each element of @db needs to contain a name entry in its keys. Maybe try:

#my $xx = $db[$vars{_recNo}]{'name'}; $db[$vars{_recNo}]{'name'} = 'exists';
or
#my $xx = $db[$vars{_recNo}]{'name'}; $db[$vars{_recNo}]{'name'} = undef;
and see whether this gives you the same results. This is the "autovivication" PodMaster talks about.
perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web