/ / La parentesi graffa tra la stringa “name” significa in Perl? - perl, parentesi graffe

La parentesi graffa tra la stringa "nome" significa in Perl? - Perl, parentesi graffe

Mi sto solo chiedendo cosa significa la parentesi graffa tra la stringa "nome" in Perl come nell'esempio sotto? Questa è la mia prima domanda, per favore sii gentile e sono abbastanza nuovo con Perl

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

risposte:

2 per risposta № 1

Per rispondere specificamente alla domanda, quali sono le parentesi graffe. Vorrei dire qui che sono la sintassi per un riferimento hash.

Non c'è molto da spiegare su un frammento così piccolo, ma pensa a questo:

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

$hash_ref = %hash;

Quando dobbiamo fare riferimento a un particolare elemento, possiamo usare -> operatore.

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

Questo è un esempio leggermente modificato tratto da - http://www.thegeekstuff.com/2010/06/perl-hash-reference/


0 per risposta № 2

Perl è un po 'conciso in questo modo. Ci sono due concetti da capire qui: -

  1. Accesso agli oggetti Perl
  2. Accesso al riferimento Perl

Proprio come Java, possiamo avere riferimenti in perl. Pensa a loro come puntatori in C se provieni dallo sfondo C. Ora, se vogliamo accedere a qualcosa usando i riferimenti, usiamo il simbolo "->". Ci sono più concetti a questo proposito come la benedizione ecc. Ma non entreremo in quello. Ma una cosa importante è che anche gli oggetti Perl sono come HASH. E quindi, tutti gli accessi ai membri degli oggetti perl ecc. Sono fatti in modo simile a HASH (riferimenti HASH, non oggetti hash).

Quindi, abbiamo un oggetto $ risultato. $ result-> get chiama il metodo Get sull'oggetto. Questo metodo restituisce un altro oggetto. Chiamiamolo temp.

Ora, su questo oggetto di nuovo, chiamiamo una funzione membro pool_attr con un argomento funzionale "nome". Questa funzione ti restituisce finalmente l'HASH.

Ricorda che gli HASH Perl si comportano in modo simile agli oggetti perl, quindi accediamo alla chiave "name" usando una notazione simile.

È possibile utilizzare i dati di stampa :: Dumper ::Funzione Dumper e ti dirà di più sulla struttura dei dati. Tuttavia, nota che gli oggetti perl sono una specie di hack, quindi potresti vedere un sacco di disordine inutile con Data :: Dumper :: Dumper.


-1 per risposta № 3

$ pool_name è dove verrà archiviato il risultato.

$ risultato è la variabile che contiene l'oggetto.

-> get è un'azione per l'oggetto $ risultato.

-> pool_attr ("name") ottiene il valore per l'elemento con hash per l'azione -> get.

-> {"nome"} accede al valore hash anonimo associato al nome "nome" per il valore -> pool_attr ("nome")