Perl入門   No.9


4.6 連想配列(ハッシュ)
 
配列は、配列の変数に対して、いくつかの要素をひとまとめにするというものでしたが、その要素間の関係もまとめて一つにしてしまおうというのが連想配列です。
 
たとえば、スーパーマーケットを思い出してみてください。
果物 リンゴ
野菜 キャベツ
魚  サンマ
貝  ハマグリ
 
といったものが売られていますね。これらのものはまとめて食料品コーナーにあります。そこで、
$食料品{果物} = リンゴ
$食料品{野菜} = キャベツ
$食料品{魚} = サンマ
$食料品{貝} = ハマグリ
 
と書くことが出来ます。この果物とか野菜とか{}(中カッコであることに注意)でくくられているものをキーと呼び、値(要素)を引き出すカギです。
 
配列の場合は、[]に数字を入れていましたが、連想配列は、文字を入れることが出来ます。
これをまとめて記述すると、
%食料品 = (果物,リンゴ,野菜,キャベツ,魚,サンマ,貝,ハマグリ)
 
となります。変数の頭は % であることに注意してください。
 
対応関係が途中でわからなくなりそうな場合は、以下のような書き方も出来ます。
%食料品 = (果物,=>リンゴ,野菜,=>キャベツ,魚,=>サンマ,貝,=>ハマグリ)
 
取り出すときは、
$食料品{野菜}
 
とします。キーであることに注意してください。リンゴからは何も出ません。
 
実際にプログラムしてみましょう。長くなるので要素は3つにしました
#!/usr/bin/perl

%eat = ("果物","リンゴ","野菜","キャベツ","魚","サンマ");

print $eat{"魚"};
 
サンマが出れば正解です。