2013-08-21 16 views
5

次の関係Perl:データ構造、これはハッシュですか?

sub _relation { 
    +{ 
     player1 => 0, 
     player2 => 1, 
     player3 => 0, 
     }, 
     ; 
} 
  1. どのように印刷するか、 "player1" を抽出する必要があり、私が言う、使うと仮定すると?
  2. 「player2」に関連付けられた値を印刷または抽出する方法を教えてください。
  3. これはどのようなデータ構造ですか?ちょうどハッシュですか?いいえ宣言

答えて

6

このサブルーチンはハッシュ参照返さない(ハッシュへのポインタ。)この方法で使用中括弧匿名ハッシュを構築し、それへの参照を返します。あなたが名前の一つに無名ハッシュをコピーしたい場合は

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

:あなたは->逆参照演算子を使用して要素にアクセスする

my $results = _relation(); 

:あなたがサブルーチンを呼び出すこのようなものを想定し

あなたは一度に全体を間接参照することができます。

my %regular_hash = %$results; 

詳細についてはPerl References Tutorialをご覧ください。

4

フリードの回答は正しいです。データ構造を理解しようとするときは、Data :: Dumperを使用すると便利です。

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

{}の出力を示し、このある匿名ハッシュ:

$VAR1 = { 
      'player3' => 0, 
      'player2' => 1, 
      'player1' => 0 
     }; 
関連する問題