導入
ハッシュのキー一覧・値一覧を取り出したり、あるキーが存在するか調べたり消したりする道具がそろっています。
説明
keys %h で全キー、values %h で全値のリストが得られます。ハッシュは順番を保証しないので、表示するときは sort keys %h で並べるのが定番です。foreach と組み合わせて全要素を回れます。
use strict;
use warnings;
my %score = (math => 90, english => 75, science => 88);
foreach my $subject (sort keys %score) {
print "$subject: $score{$subject}\n";
}
exists $h{キー} はキーがあるかを真偽で返し、delete $h{キー} はそのペアを取り除きます。
use strict;
use warnings;
my %stock = (pen => 5, note => 0);
print "penあり\n" if exists $stock{pen};
print "eraserなし\n" unless exists $stock{eraser};
delete $stock{note};
print "noteは今: ", (exists $stock{note} ? "あり" : "なし"), "\n";
やってみよう
キーを増やして sort keys の並びを確かめましょう。exists で存在しないキーを調べたり、delete の対象を変えたりしてみてください。
演習
ハッシュ %h に (a => 1, b => 2, c => 3) を入れ、sort keys %h を foreach で回して、各行を キー=値 の形(例 a=1)で表示してください。
ヒント1を見る
foreach my $k (sort keys %h) { print "$k=$h{$k}\n"; }。