ハッシュにリストを格納する

Perlの配列、ハッシュは、それぞれ要素としてスカラー変数か、参照しか持てない。
よって、ハッシュに配列を格納する場合、配列のリファレンスを代入する。


使用例

my %hash;
my @list = (1,2,3);

#No1
$hash{"test"} = [@list]; #ここがポイント。[]で囲う事で、無名配列のリファレンスを生成し代入する。

#No2
$hash{"test"} = ¥@list; #直接リファレンスを生成、代入もできる。非推奨。

my @ref = @{$hash{"test"}}; #デリファレンスする。@refはこれ以降、普通のリストとして使用できる。なお、配列自体がコピーされるため、@ref内の値を変更しても%hashに格納されたリスト内の値は変わらない。

print $hash{"test"}[1]; #代入しないでそのまま利用も可

$hash{"test"}[1]=10; # No.2の方法を使った場合、元の@listの値が変更される。No.1では@listの値は変更されない。


最終更新:2011年10月25日 13:57
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。