exists関数:指定したキーがハッシュに存在するかどうか確認する

Perl で用意されている組み込み関数の一つである exists 関数の使い方です。 exists 関数は指定したキーがハッシュに存在するかどうか確認します。

(Last modified: )

exists関数の書式と基本的な使い方

exists 関数は次のように定義されています。

exists
exists(EXPR)
指定されたキーがハッシュに存在するかどうか確認します。

パラメータ:
  EXPR  ハッシュの要素
戻り値:
  存在する場合は真(true)、そうでなければ偽(false)

1 番目の引数には対象となるハッシュの要素を指定します。ハッシュの要素は $ハッシュ名{キー} で表されます。指定したキーが存在した場合、真(true)が戻り値として返されます。

注意すべき点はキーが存在するかどうかだけを見ている点です。キーに対応する値が未定義値であってもキーが存在すれば真(true)を返します。

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

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

if (exists($address{'鈴木'})){
  print "登録されています\n";
}
サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my %address = (
"鈴木" => "東京都千代田区",
"本田" => "愛知県名古屋市",
"山田" => "東京都葛飾区",
"遠藤" => "大阪府堺市"
);

my $name;

$name = "鈴木";
if (exists($address{$name})){
  print "${name}さんは登録されています\n";
}else{
  print "${name}さんは登録されていません\n";
}

$name = "山内";
if (exists($address{$name})){
  print "${name}さんは登録されています\n";
}else{
  print "${name}さんは登録されていません\n";
}

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

exists関数:指定したキーがハッシュに存在するかどうか確認する(1)

指定したキーがハッシュに存在しているかどうかを調べ、結果を画面に表示しました。

-- --

Perl で用意されている組み込み関数の一つである exists 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。