Perl で次のように作成される構造はどれですか?
my $self = { Name => $name, Color => $class->default_color };
それがハッシュの場合、公式の表記法は次の ( の%
代わりに括弧$
) ではありません。
my %self = ( Name => $name, Color => $class->default_color );
Perl で次のように作成される構造はどれですか?
my $self = { Name => $name, Color => $class->default_color };
それがハッシュの場合、公式の表記法は次の ( の%
代わりに括弧$
) ではありません。
my %self = ( Name => $name, Color => $class->default_color );
のデータ{ ... }
はハッシュ参照です。
のデータ( ... )
はリストですが、コンテキストによりハッシュになります。
Perlにはハッシュのリテラル表現がないため、キーと値のペアのリストとしてハッシュを作成します。匿名ハッシュコンストラクターまたは名前付きハッシュへの割り当ては、キーと値のペアのリストをハッシュに変換します。
一番上の行は、スカラー変数に割り当てるハッシュ参照を作成します。
my $self = { Name => $name, Color => $class->default_color };
一番下の行は、名前付きハッシュにリストを割り当てます。
my %self = ( Name => $name, Color => $class->default_color );
まあ、それはまだハッシュですが、匿名のものです。そして、その参照は に割り当てられ$self
ます。ドキュメントは次のように述べています。
匿名ハッシュへの参照は、中かっこを使用して作成できます。
$hashref = {
'Adam' => 'Eve',
'Clyde' => 'Bonnie',
};