まくまくPerlノート
ハッシュへのリファレンスを取得する
2008-04-30

ハッシュへのリファレンスを取得するには、ハッシュ変数の前に \ を付けます。 リファレンスはスカラ値です。

my %hash = ( 'AAA' => 100, 'bbb' => 200 );
my $ref = \%hash;    # ハッシュへのリファレンスを取得

ハッシュへのリファレンスをデリファレンスするには、以下のいずれかの形式で行います。

# ハッシュ全体の参照
%$ref
%{$ref}

# 各要素の参照
$$ref{'AAA'}    # デリファレンス(方法 1)
${$ref}{'AAA'}    # デリファレンス(方法 2)
$ref->{'AAA'}    # デリファレンス(方法 3)

ただし、リファレンスとして配列やハッシュの要素が指定されている場合は、リファレンスを囲む括弧 {} を省略することはできません。

%{$ref{'AAA'}}

これを、仮に {} を省略して %$ref{'AAA'} と書いてしまうと、%{$ref}{'AAA'} とみなされてしまいます。

2008-04-30