values関数の使い方(ハッシュに含まれている全ての値をリストの形で返す)
Perl で用意されている組み込み関数の一つである values 関数の使い方です。 values 関数は対象となるハッシュに含まれている全ての値をリストの形で返します。
(2022 年 09 月 27 日公開 / 2022 年 09 月 27 日更新)
values関数の書式と基本的な使い方
values 関数は次のように定義されています。
values values(HASH)
全ての値をリストの形で返します。 パラメータ: HASH 対象のハッシュ 戻り値: ハッシュに含まれる値のリスト
1番目の引数には対象となるハッシュが格納されたハッシュ変数を指定します。
具体的には次のように記述します。
my %address = ( "鈴木" => "東京都千代田区", "山田" => "東京都葛飾区" ); my @valuelist = values(%address);
戻り値として取得できる値を配列変数に格納しています。返される値のリストの要素がどのような順序で並んでいるかは分かりません。ハッシュでは各要素に順番は無いためです。
なお「values」関数の戻り値を配列ではなく単なる変数に格納した場合は、ハッシュの値のリストでは無くハッシュに含まれる要素の個数が格納されます。
my %address = ( "鈴木" => "東京都千代田区", "山田" => "東京都葛飾区" ); my $valuecount = values(%address);
※ハッシュに含まれるキーのリストを取得するには「keys関数」を参照して下さい。
では簡単なプログラムで確認してみます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my %address = ( "鈴木" => "東京都千代田区", "山田" => "東京都葛飾区", "本田" => "愛知県名古屋市", "遠藤" => "大阪府堺市" ); my @valuelist = values(%address); my $valuecount = values(%address); print "要素数は $valuecount です。\n"; for (my $i = 0; $i < $valuecount; $i++){ print "$valuelist[$i]\n"; }
上記を「test2-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
-- --
Perl で用意されている組み込み関数の一つである values 関数の使い方について解説しました。
( Written by Tatsuo Ikura )