Perlの基礎(ハッシュ変数)
ハッシュ変数とは
連想配列とも呼ばれ「キー」と「値」を1組のペアとして関連付けさせた配列。
% + 英字1文字から始まり、それ以降は英字、数字、アンダースコアが使える。
記述の方法は下記のようにし、キーを指定して値にアクセスする。
%fruit = ("red"=>"apple","yellow"=>"banana","purple"=>"grape"); print "$fruit{'red'}\n"; > apple
ハッシュ関数
- keys
全てのキーを取り出す。
%fruit = ("red"=>"apple","yellow"=>"banana","purple"=>"grape"); @file = keys %fruit; print "@file\n"; > red yellow purple
2.values
全ての値を取り出す。
%fruit = ("red"=>"apple","yellow"=>"banana","purple"=>"grape"); @file = values %fruit; print "@file\n"; > banana grape apple
3.each
1組のキーと値を取り出す。while構文と併用して使用する。
%fruit = ("red"=>"apple","yellow"=>"banana","purple"=>"grape"); while (my($key,$val) = each %fruit) { print "$key : $val\n"; } > red : apple > purple : grape > yellow : banana
4.delete
特定の要素を取り除く。
%fruit = ("red"=>"apple","yellow"=>"banana","purple"=>"grape"); delete $fruit{yellow}; #(yellow - banana)の要素を削除 while (my($key,$val) = each %fruit) { print "$key : $val\n"; } > purple : grape > red : apple
ハッシュスライス
%age = (tom=>21,mike=>19,kent=>25,nancy=>17);
という年齢データを
ハッシュスライスを使用し
@age{qw(tom mike kent nancy) } = (21,19,25,17);
と記述する事が出来る。
ハッシュスライスを用いて年齢を更新する。
my %age = (tom=>21,mike=>19,kent=>25,nancy=>17); @age { qw(tom mike)} = (22,20); while (my ($key,$val) = each %age) { print "$key : $val\n"; } > nancy : 17 > tom : 22 > kent : 25 > mike : 20
ハッシュスライスを用いて値を取り出す。
my %age = (tom=>21,mike=>19,kent=>25,nancy=>17); my @data = @age{qw(kent nancy)}; print "@data\n"; > 25 17