delete関数

広告

「delete」関数は指定されたハッシュ要素を削除しキーと値を削除します。

引数に指定されたハッシュ要素を削除します。キーと値のペアが削除されます。

パラメータ:
  EXPR  ハッシュの要素
戻り値:
  キーに対応する値

1番目の引数には対象となるハッシュの要素を指定します。ハッシュの要素は「$ハッシュ名{キー}」で表されます。指定したキーが存在した場合、要素は削除され1つ減ります。

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

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

delete($address{'鈴木'});

指定したキーに該当するハッシュ要素が無かった場合は何も行わずエラーともなりません。

※delete関数は配列要素に対して使用できます。詳しくは「delete関数」を参照して下さい。

サンプルプログラム

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

test4-1.pl

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

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

my $val = delete($address{'本田'});
print "削除された値:$val¥n¥n";

print "残っている要素¥n";
while (my ($key, $value) = each(%address)){
  print "key=$key, value=$value¥n";
}

上記を「test4-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

delete関数

( Written by Tatsuo Ikura )