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&nbsp;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?