ここはそんなにも難しくなかったので、軽くまとめ。
配列では、[](ブラッケット)を使いますが、ハッシュでは{}(ブレース)を使う。
# 配列
$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件) を見る