Tengo una clase con un método que devuelve un hash. Por lo general, me gustaría tener el resultado de este modo:¿Cómo desreferenciamos un hash que ha sido devuelto por un método de una clase?
%resp = $myclass->sub($foo);
Y luego los miembros de acceso del hash devuelto como esto:
$resp{key}{subkey};
en el caso de un hash 2d.
Calculo que debe haber una manera de combinar esto en una sola línea, elegante, algo como esto:
$myclass->sub($foo)->{key}{subkey}
Esto, obviamente, no se dereferenced correctamente como Perl vuelve este al intentar ejecutar el código:
Can't use string ("1/8") as a HASH ref
al tratar secuencias de eliminación de referencias al azar, de mirar "References quick reference" on Perlmonks, me ocurrió lo siguiente, que Perl no se queja, sino que también no devuelve lo que estoy buscando:
$%{$myclass->sub($foo)}->{key}{subkey}
¿Alguien puede decirme cuál es la secuencia de escape de desreferenciación mágica para hacer esto?
Todo el mundo parece querer hacer allí vive más duro girando dos perfectamente buenas líneas en una sola línea en mal estado. Sin duda hay mejores cosas en que pensar. :) –