La diferencia entre usar la sintáxis de llaves y la de corchetes estriba en que el objeto construido es un hash en el caso de las llaves y un array en el caso de los corchetes:
DB<32> x Tutu->new(nombre=>'Alberto', apellidos=>[qw(Gonzalez Martinez)]) 0 Tutu=ARRAY(0x8704558) 0 'Alberto' 1 ARRAY(0x85a3fe0) 0 'Gonzalez' 1 'Martinez'
Casiano Rodríguez León