導入
配列やハッシュを「入れ子」にしたい――たとえば「ハッシュの値が配列」のようなデータを作りたいことがあります。それを可能にするのがリファレンス(参照)です。
説明
リファレンスは「配列やハッシュそのものを指す1つのスカラ値」です。\@array や \%hash で作り、[ ](無名配列)・{ }(無名ハッシュ)で直接書くこともできます。中身は矢印 -> でたどります。
use strict;
use warnings;
# ハッシュの値が配列リファレンス
my %team = (
red => ["Alice", "Bob"],
blue => ["Carol", "Dave"],
);
print $team{red}[0], "\n"; # Alice
push @{ $team{blue} }, "Eve"; # blue チームに追加
# 配列の各要素がハッシュリファレンス
my @users = (
{ name => "Taro", age => 20 },
{ name => "Hana", age => 25 },
);
for my $u (@users) {
print "$u->{name} ($u->{age})\n";
}
リファレンスを使うと、JSON のような入れ子データも自然に表現できます。Perl で本格的なプログラムを書くときの必須知識です。
(リファレンス/デリファレンスの実挙動は、このコースの学習用エンジンでは対象外です。手元の perl で試してください。)