スカラー変数($)と配列(@)について説明してきましたが、今度は名前付きの配列とも言うべき、「連想配列」の話です。別名「ハッシュ」とも言います。
連想配列は、名前(キー)と値の組み合わせを覚えてくれる入れ物です。
%menu = ('今日のオススメ' => 'サバのミソ煮', 'Aランチ' => '野菜炒め定食');
$menu{'Bランチ'} = '豚のしょうが焼定食';
$menu{'スペシャル'} = '幕の内定食';
上の例では、まず、%menu という連想配列に、今日のオススメ という名前の サバのミソ煮 と、Aランチ という名前の 野菜炒め定食 を入れています。
次に、Bランチ という名前の 豚のしょうが焼定食 と、スペシャル という名前の 幕の内定食 を %menu に追加しています。
連想配列の全体をあらわす時は、頭に % をつけます。
また、連想配列に入っている1つ1つのデータをあらわす時は、$ と { } を使います。
$x = '今日のオススメ';
$y = 'Aランチ';
print $menu{$x};
print $menu{$y};
上記のように、$x に 今日のオススメ、$y に Aランチ が入っている場合、
$menu{$x} は、サバのミソ煮 になりますし、$menu{$y} は、野菜炒め定食 です。
%youbi = ('Sun' => '日曜日', 'Mon' => '月曜日', 'Tue' => '火曜日');
%youbi = ('Sun', '日曜日', 'Mon', '月曜日', 'Tue', '火曜日');
%youbi = qw(Sun 日曜日 Mon 月曜日 Tue 火曜日);
上の3つはすべて同じです。
データを連想配列にまとめて入れる時には、通常見やすいように => で、名前と値の組み合わせを表現しますが、単に , カンマ で区切るだけでも構いません。
カッコの前に qw をつけて、 ' や , を省略することもできちゃいます。