/ / Corchete entre la cadena "nombre" significa en Perl? - perl, llaves

El corchete entre la cadena "nombre" significa en Perl? - perl, llaves

Me pregunto qué significa el corchete entre la cadena "nombre" en Perl como se muestra en el siguiente ejemplo. Esta es mi primera pregunta, por favor sea amable y soy bastante nuevo con Perl

my $pool_name = $result->get->pool_attr("name")->{"name"};

Respuestas

2 para la respuesta № 1

Para responder específicamente a la pregunta, ¿cuáles son las llaves? Yo diría que aquí están la sintaxis de una referencia hash.

No hay mucho que explicar en un fragmento tan pequeño, pero piensa en esto:

%hash = (
"name"              => "Harsha",
"designation"      => "Manager"
);

$hash_ref = %hash;

Cuando necesitamos hacer referencia al elemento en particular, podemos usar -> operador.

my $name =  $hash_ref->{name};

Este es un ejemplo ligeramente modificado tomado de: http://www.thegeekstuff.com/2010/06/perl-hash-reference/


0 para la respuesta № 2

Perl es un poco terso de esta manera. Hay dos conceptos para entender aquí:

  1. Acceso a objetos Perl
  2. Acceso de referencia Perl

Al igual que Java, podemos tener referencias en Perl. Piense en ellos como punteros en C si usted es de C fondo. Ahora, si queremos acceder a cualquier cosa utilizando las referencias, usamos el símbolo "->". Hay más conceptos de esto como bendición, etc. Pero no vamos a entrar en eso. Pero una cosa importante es que los objetos Perl también son como HASH. Y, por lo tanto, todo el acceso a los miembros del objeto perl, etc., se realiza de manera similar. a HASH (referencias HASH, no objetos hash).

Entonces, tenemos un objeto $ resultado. $ result-> get llama el método Get en el objeto. Este método te devuelve otro objeto. Llamémoslo temp.

Ahora, en este objeto de nuevo, llamamos a una función miembro pool_attr con un argumento funcional "nombre". Esta función te devuelve el HASH finalmente.

Recuerde que Perl HASH se comporta de manera similar a los objetos perl, por lo que accedemos a la tecla "nombre" utilizando una notación similar.

Puedes usar Print Data :: Dumper ::Función de descargador y le dirá más sobre la estructura de datos. Sin embargo, tenga en cuenta que los objetos perl son una especie de pirateo, por lo que es posible que vea una gran cantidad de desorden innecesario con Data :: Dumper :: Dumper.


-1 para la respuesta № 3

$ pool_name es donde se almacenará el resultado.

$ resultado es la variable que contiene el objeto.

-> get es una acción para el objeto $ resultado.

-> pool_attr ("nombre") obtiene el valor del elemento hash para la acción -> obtener.

-> {"nombre"} accede al valor de hash anónimo asociado con el nombre "nombre" para el valor -> pool_attr ("nombre")