values関数

広告

「values」関数は対象となるハッシュに含まれている全ての値をリストの形で返します。

全ての値をリストの形で返します。

パラメータ:
  HASH  対象のハッシュ
戻り値:
  ハッシュに含まれる値のリスト

1番目の引数には対象となるハッシュが格納されたハッシュ変数を指定します。

具体的には次のように記述します。

my %address = (
"鈴木" => "東京都千代田区",
"山田" => "東京都葛飾区"
);

my @valuelist = values(%address);

戻り値として取得できる値を配列変数に格納しています。返される値のリストの要素がどのような順序で並んでいるかは分かりません。ハッシュでは各要素に順番は無いためです。

なお「values」関数の戻り値を配列ではなく単なる変数に格納した場合は、ハッシュの値のリストでは無くハッシュに含まれる要素の個数が格納されます。

my %address = (
"鈴木" => "東京都千代田区",
"山田" => "東京都葛飾区"
);

my $valuecount = values(%address);

※ハッシュに含まれるキーのリストを取得するには「keys関数」を参照して下さい。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test2-1.pl

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です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

values関数

( Written by Tatsuo Ikura )