Perl: многопоточность с общим многомерным хешем

Я пытаюсь разделить многомерный хэш на несколько потоков. Этот хеш содержит 2 пары ключей, мне нужно знать, если они уже подключены, если нет, мне нужно их подключить, если нет, то нет необходимости переходить в базу данных.

use threads;
use threads::shared;

my %FLUobject2param : shared    = ();

#Start a new thread for every available processor
for (my $i=0;$i<$PROCESSORS;$i++) {
    threads->new(\&handlethread);
}
#Catch if these threads end
foreach my $onthr (threads->list()) {
    $onthr->join();
}

sub handlethread{
    ...
    if(not defined $FLUobject2param{$objectID}{$paramID}){
        $dbh->getObject2Param($objectID,$paramID);
        $FLUobject2param{$objectID}{$paramID} = 1;
    }
}

Я получаю ошибкуInvalid value for shared scalar&nbsp;на линии
if(not defined $FLUobject2param{$objectID}{$paramID}){

По-видимому, это связано с темами Perl: shared: позволяет вам использовать один уровень общей структуры.

Как я смогу проверить, используется ли эта комбинация в нескольких потоках?