Perl: subprocesos con hash multidimensional compartido

Estoy tratando de compartir un hash multidimensional en varios subprocesos. Este hash contiene 2 pares de claves conectadas, necesito saber si ya están conectadas, si no lo están, necesito conectarlas, si no, no hay necesidad de ir a la base de datos.

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

Sigo recibiendo el errorInvalid value for shared scalar en la línea
if(not defined $FLUobject2param{$objectID}{$paramID}){

Aparentemente, esto tiene que ver con los subprocesos de perl :: shared que solo le permiten compartir un solo nivel de estructura compartida.

¿Cómo podría verificar si esta combinación ya se utiliza en varios subprocesos?

Respuestas a la pregunta(1)

Su respuesta a la pregunta