2013-08-21 10 views
5

Zakładając używam, powiedzmy, po relacjaPerl: Struktura danych, czy to skrót?

sub _relation { 
    +{ 
     player1 => 0, 
     player2 => 1, 
     player3 => 0, 
     }, 
     ; 
} 
  1. W jaki sposób należy wydrukować lub wyodrębnić „Gracz1”?
  2. Jak wydrukować lub wyodrębnić wartość związaną z "player2"?
  3. Jaka jest struktura danych? Tylko skrót? Bez deklaracji

Odpowiedz

6

Ten podprogram zwraca hash odniesienie (wskaźnik do mieszania.) Nawiasy klamrowe używane w ten sposób skonstruować anonimowy hash i zwraca referencję do niego.

Zakładając, że nazywają coś podprogramu tak:

my $results = _relation(); 

by uzyskać dostęp do elementów za pomocą -> wyłuskania Operator:

$results->{player1} # 0 
$results->{player2} # 1 

Jeśli chcesz skopiować anonimowy hash w nazwie jednego , możesz usunąć cały obiekt naraz za pomocą

my %regular_hash = %$results; 

Aby uzyskać więcej informacji, patrz Perl References Tutorial.

4

Odpowiedź friedo jest poprawna. Podczas próby zrozumienia struktur danych pomocne jest użycie Data :: Dumper.

use Data::Dumper; 
print Dumper(_relation()); 

{} jest w przedstawieniu wyjściowym jest anonimowym mieszania:

$VAR1 = { 
      'player3' => 0, 
      'player2' => 1, 
      'player1' => 0 
     };