/ / Accolade entre la chaîne "nom" signifie en Perl? - perl, accolades

Accolade entre la chaîne "name" signifie en Perl - perl, accolades

Je me demande simplement ce que signifie l'accolade entre la chaîne "name" signifie en Perl comme dans l'exemple ci-dessous? Ceci est ma première question, s'il vous plaît soyez doux et je suis assez nouveau avec perl

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

Réponses:

2 pour la réponse № 1

Pour répondre à la question en particulier, quels sont les accolades. Je dirais ici qu’ils sont la syntaxe d’une référence de hachage.

Il n’ya pas grand chose à expliquer sur un si petit extrait, mais pensez à ceci:

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

$hash_ref = %hash;

Lorsque nous devons référencer l'élément en particulier, nous pouvons utiliser l'opérateur ->.

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

Ceci est un exemple légèrement modifié tiré de - http://www.thegeekstuff.com/2010/06/perl-hash-reference/


0 pour la réponse № 2

Perl est un peu laconique de cette façon. Il y a deux concepts à comprendre ici: -

  1. Accès aux objets Perl
  2. Accès aux références Perl

Tout comme Java, nous pouvons avoir des références en Perl. Considérez-les comme des pointeurs en C si vous êtes d’origine C. Maintenant, si nous voulons accéder à quelque chose en utilisant les références, nous utilisons le symbole "->". Il y a plus de concepts à ceci comme la bénédiction etc. Mais nous n'entrerons pas dans cela. Mais une chose importante est que les objets Perl sont aussi comme HASH. Et par conséquent, tous les accès aux membres d'objet perl, etc., se font de la même manière. HASH (références HASH, pas d'objets hachés).

Donc, nous avons un objet $ result. $ result-> get appelle la méthode Get sur l'objet. Cette méthode vous renvoie un autre objet. Appelons-le temp.

Maintenant, sur cet objet à nouveau, nous appelons une fonction membre pool_attr avec un argument fonctionnel "nom". Cette fonction vous renvoie finalement le HASH.

Rappelez-vous que les hachages Perl se comportent de la même manière que les objets perl, nous accédons donc à la clé "name" en utilisant une notation similaire.

Vous pouvez utiliser print Data :: Dumper ::Fonction Dumper et il vous en dira plus sur la structure de données. Cependant, notez que les objets perl sont un peu un hack, vous pourriez donc voir beaucoup d'encombrement inutile avec Data :: Dumper :: Dumper.


-1 pour la réponse № 3

$ pool_name est l'endroit où le résultat sera stocké.

$ result est la variable contenant l'objet.

-> get est une action pour l'objet $ result.

-> pool_attr ("name") obtient la valeur de l'élément haché pour l'action -> get.

-> {"name"} accède à la valeur de hachage anonyme associée au nom "name" pour la valeur -> pool_attr ("name")