ハッシュとは、配列と同じように任意の個数の値を格納するデータ構造の一つです。ただし、配列とは違って、格納する個々の値を指定するのに、数値 (index) の代わりに名前を使います。この名前をキーと言います。
name [1] = “Hanako”
indexである “1” の値に名前を使う事ができます。
下記のように表すことができます。
$name{“ Yamada “} = “Hanako”
“Yamada” がキー、”Hanako” が値になります。
配列はindexがユニークな値になっています。ハッシュでも、キーはユニークな値しか認められません。
ハッシュの要素にアクセス
要素にアクセスする場合は以下のように書きます。
$hash{$some_key}
具体例として、
$name{“Yamada”} = “Hanako”;
$name{“Suzuki”} = “Taro”;
$name{“Shindo”} = “Taichi”;
ハッシュの全体にアクセス
ハッシュ全体を表すには、”%”を使います。
%name = (“Yamada”, “Hanako”, “Suzuki”, “Taro”, “Shindo”, “Taichi” };
■ハッシュをほどく
Perlは、検索が速くできるような順番で、キーと値のペアを格納するため、リストに戻したさいに、元のリストとお同じ順番で並ぶとは限りません。
#!usr/bin/perl
%some_hash = ("Yamada", "Hanako", "Suzuki", "Taro", "Shindo", "Taichi");
@any_array = %some_hash;
print "@any_array\n";
実行してみる
$ perl 5_2_1
Yamada Hanako Shindo Taichi Suzuki Taro
■ => を使ってキー/値を定義する
人間にとって、どれがキーで、どれが値かを分かりやすくするために、”=>” を使います。
%name = (“Yamada” => “Hanako”, “Suzuki” => “Taro”, “Shindo” => “Taichi” };
関数を使う
ハッシュ全体を扱う関数がいくつかあります。
■keys ・ values
keys : ハッシュに含まれる全てのキーから成るリストを返します。
values : ハッシュに含まれる全ての値から成るリストを返します。
サンプルとしては下記の通りです。
%name = ("Yamada", "Hanako", "Suzuki", "Taro", "Shindo", "Taichi");
my @key = keys %name;
my @value = values %name;
print "\%nameのキー:@key\n";
print "\%nameの値:@value\n";
実行すると、下記が出力されます。
%nameのキー:Yamada Shindo Suzuki
%nameの値:Hanako Taichi Taro
■each
each : 評価するたびに、次のキー/値のペアを返します。繰り返しに利用されます。
サンプルとしては下記の通りです。
%name = ("Yamada", "Hanako", "Suzuki", "Taro", "Shindo", "Taichi");
while( ($key, $value) = each %name ) {
print "$key => $value\n";
}
実行すると下記が出力されます。
Yamada => Hanako
Shindo => Taichi
Suzuki => Taro
0 件のコメント:
コメントを投稿