Perl: Threading com hash multidimensional compartilhado

Estou tentando compartilhar um hash multidimensional em vários segmentos. Esse hash contém 2 pares de chaves conectados, preciso saber se eles já estão conectados, se não estiverem, preciso conectá-los, caso contrário, não há necessidade de acessar o banco de dados.

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;
    }
}

Eu continuo recebendo o erroInvalid value for shared scalar na linha
if(not defined $FLUobject2param{$objectID}{$paramID}){

Aparentemente, isso tem a ver com os threads :: shared do perl, permitindo que você compartilhe um único nível de estrutura compartilhada.

Como eu ainda seria capaz de verificar se essa combinação já está sendo usada em vários threads?

questionAnswers(1)

yourAnswerToTheQuestion