¿Cómo puedo asignar un resultado de condición booleana a una variable escalar en perl?

Estoy haciendo lo siguiente, pero no funciona correctamente:

    my $enabled = $hash && 
                  $hash->{'key'} && 
                  $hash->{'key'}->{'enabled'} && 
                  $hash->{'key'}->{'active'};

¿Es esta una forma aceptable de asignar un valor booleano a una variable escalar? Mi código se está comportando de manera extraña, como es, y creo que se debe a esta asignación. He validado que los valores individuales existen para todas estas claves y están configurados en un valor.

PD Lo siento por ser un novato! Busqué en Google por unos 10 minutos y no pude encontrar la respuesta en ninguna parte.

Respuestas a la pregunta(1)

Su respuesta a la pregunta