Es posible crear hashes multinivel
anidando referencias a hashes anónimos:
$behaviour = {
  cat   => { nap => "lap", eat=>"meat"},
  dog   => { prowl => "growl", pool=>"drool"},
  mouse => { nibble=>"kibble"}
};
Para acceder a los datos se requiere una cadena de flechas:
print "A cat eats ",$behaviour->{cat}->{eat},"\n";
Al igual que para los arrays multidimensionales, las flechas 
después de la primera pueden ser suprimidas:
print "A mouse nibbles ",$behaviour->{mouse}{nibble},"\n";
En general las secuencias ]->{, }->[, etc. pueden ser abreviadas
omitiendo la flecha: ]{, }[, etc.
En caso de ambiguedad es necesario prefijar la llave o el corchete de un símbolo +
o de  un return:
  DB<1> sub hashem { { @_ } }
  DB<2> @a = hashem(a => 1, b => 2)
  DB<3> x @a
0  'a'
1  1
2  'b'
3  2
  DB<4> sub hashem { +{ @_ } }
  DB<5> @a = hashem(a => 1, b => 2)
  DB<6> x @a
0  HASH(0x100a28120)
   'a' => 1
   'b' => 2
  DB<8> sub hashem { return { @_ } }
  DB<9> @a = hashem(a => 1, b => 2)
  DB<10> x @a
0  HASH(0x100a290c0)
   'a' => 1
   'b' => 2
Si se pone {; se deshace la ambiguedad 
en favor de la interpretación como bloque de código:
  DB<12> sub hashem { {; @_ } }
  DB<13> @a = hashem(a => 1, b => 2)
  DB<14> x @a
0  'a'
1  1
2  'b'
3  2
Casiano Rodríguez León
