ここはそんなにも難しくなかったので、軽くまとめ。
配列では、[](ブラッケット)を使いますが、ハッシュでは{}(ブレース)を使う。
# 配列 $sos[0] = 'haruhi; # ハッシュ $sos{'dancho'} = 'haruhi;
ハッシュ全体を表すのには、%(パーセント記号)を使いう。また、ハッシュ全体を一気に定義するには=>を使うとわかりやすい。=>はコンマとほとんど等価なのね。
# コンマだけで定義 my %sos = ('dancho', 'haruhi', 'maid', 'mikuru', 'megane', 'yuki'); # わかりやすく=>を使って定義 my %sos = ('dancho' => 'haruhi', 'maid' => 'mikuru', 'megane' => 'yuki');
=>使った方がどうみても分かりやすい。
keys関数はハッシュのキーのリストを返す。values関数はハッシュの値のリストを返す。
my %sos = ('dancho' => 'haruhi', 'maid' => 'mikuru', 'megane' => 'yuki'); my @k = keys %sos; my @v = values %sos; print "@k\n"; print "@v\n";
実行すると、
$ perl sos_hash.pl dancho megane maid haruhi yuki mikuru
となる。
each関数はハッシュを順にたどりながらキーと値のペアのリストを返す。
my %sos = ('dancho' => 'haruhi', 'maid' => 'mikuru', 'megane' => 'yuki'); while (my($key, $value) = each %sos) { print "$key => $value\n"; }
myはこんな風に使っても良かったっけな。実行すると、
$ perl sos_hash.pl dancho => haruhi megane => yuki maid => mikuru
となる。
exists関数はハッシュにあるキーが存在するかを確かめるのに使う。delete関数はハッシュから指定したキーを削除する。
my %sos = ( 'dancho' => 'haruhi', 'maid' => 'mikuru', 'megane' => 'yuki', 'zatsuyou'=>'kyon' # 追加した ); delete $sos{'zatsuyou'}; if(!exists $sos{'zatsuyou'}) { print "deleted!\n"; }
これを実行すると、"deleted !"と表示される。

- 作者: ランダル・L.シュワルツ,トムフェニックス,Randal L. Schwartz,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2003/05
- メディア: 単行本
- 購入: 15人 クリック: 474回
- この商品を含むブログ (294件) を見る