0

Perl で次のように作成される構造はどれですか?

my $self = { Name => $name, Color => $class->default_color };

それがハッシュの場合、公式の表記法は次の ( の%代わりに括弧$) ではありません。

my %self = ( Name => $name, Color => $class->default_color );
4

3 に答える 3

5

のデータ{ ... }はハッシュ参照です。

のデータ( ... )はリストですが、コンテキストによりハッシュになります。

于 2012-09-09T20:49:44.353 に答える
3

Perlにはハッシュのリテラル表現がないため、キーと値のペアのリストとしてハッシュを作成します。匿名ハッシュコンストラクターまたは名前付きハッシュへの割り当ては、キーと値のペアのリストをハッシュに変換します。

一番上の行は、スカラー変数に割り当てるハッシュ参照を作成します。

my $self = { Name => $name, Color => $class->default_color };

一番下の行は、名前付きハッシュにリストを割り当てます。

my %self = ( Name => $name, Color => $class->default_color );
于 2012-09-09T22:27:26.857 に答える
3

まあ、それはまだハッシュですが、匿名のものです。そして、その参照は に割り当てられ$selfます。ドキュメントは次のように述べています。

匿名ハッシュへの参照は、中かっこを使用して作成できます。

$hashref = {    
  'Adam'  => 'Eve',     
  'Clyde' => 'Bonnie',
};
于 2012-09-09T20:49:10.423 に答える