¿Crear una clave multidimensional de hash a partir de una matriz?

Quiero crear un multidimensional%hash desde el@array.

Suponer@array es como

my @array=(1,2,3,4,5);

Quiero asignar@array último valor como valor final para multidimensional%hash es decir

%hash=(
        1=>{ 
              2=>
                 {
                  3=>
                      {
                        4=>5
                       }
                  }
              }
           )

Lo que significa$hash{1}{2}{3}{4}=5;

Quiero hacerlo en algo como:

for my $i (0..$#array){
    #push $i as key until second last element and assign last element as value
} 

Nota la@array puede ser de cualquier tamaño, solo quiero asignar el último elemento de@array como valor para las claves de elementos antes del último elemento en%hash.

Respuestas a la pregunta(1)

Su respuesta a la pregunta