PerlならサンプルコードPerl入門

2008-02-14

delete関数 - ハッシュのキーの削除

  1. Perl
  2. ハッシュ
  3. 関数
  4. delete

 ハッシュのキーを削除するにはdelete関数を使用します。キーに対応する値も削除されます。戻り値は削除されたキーに対応する値です。

$value = delete $hash{$key};

サンプル

 delete関数を使って、ageというキーを削除するサンプルです。

# ageというキーを削除
my %person = (name => 'Ken', age => 19);
delete $person{age};

 ハッシュのリファレンスの場合のサンプルです。

# キーを削除。リファレンスの場合。
my $person = {name => 'Ken', age => 19};
delete $person->{age};

ハッシュのキーを削除するサンプルで、出力が見れます。

use strict;
use warnings;
use Data::Dumper;

# 生徒の数学の点数
my %math_scores = ( 
  Aiko => 89,
  Kenta => 0,
  Taro => undef
);

# 1: 最初の状態
print "1: 最初の状態\n";
if (exists $math_scores{Aiko}) {
  print "\$math_scores{Aiko} は存在します。\n";
}
print Data::Dumper->Dump([\%math_scores] , ['*math_scores']);
print "\n\n";

# deleteでキーを削除
delete $math_scores{Aiko};

# 2: deleteで削除した状態
print "2: deleteで削除した状態\n";
if (exists $math_scores{Aiko}) {
  print "\$math_scores{Aiko} は存在します。\n";
}
else{
  print "\$math_scores{Aiko} は存在しません。\n";
}

print Data::Dumper->Dump([\%math_scores] , ['*math_scores']);
print "\n";

 実行結果

1: 最初の状態
$math_scores{Aiko} は存在します。
%math_scores = (
                 'Aiko' => 89,
                 'Kenta' => 0,
                 'Taro' => undef
               );


2: deleteで削除した状態
$math_scores{Aiko} は存在しません。
%math_scores = (
                 'Kenta' => 0,
                 'Taro' => undef
               );

nitainitai 2012/12/05 18:48 how to manipulate a hash key value pair using accessor method..???

perlcodesampleperlcodesample 2012/12/07 09:42 I don't understand you want to say.

If you want to create accesseor method easyly, you use some module like Class::Accessor::Fast, Object::Simple.

See also http://search.cpan.org/dist/Object-Simple/lib/Object/Simple.pm

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証