月曜日, 12 月 21st, 2009 | Author: djodjo
Perlですが、リファレンスになってるハッシュのマージする方法。
my $hash1 = {
aaa=> 10,
bbb=> 100,
ccc=>1000,
};
my $hash2 = {
bbb=> 20,
};
my $merge= {
%{ $hash1 },
%{ $hash2 },
eee=>'add',
};
use Data::Dumper;
print Dumper $merge;
とすると、以下の感じでマージされる。ちゃんと後ろにくっつけた、hash2が同じキーbbbを上書きしてる。
$VAR1 = {
'bbb' => 20,
'aaa' => 10,
'ccc' => 1000,
'eee' => 'add'
};
ちなみに、ふつうのハッシュをマージ・結合するには
my %hash1 = ( aaa=> 10, bbb=> 100, ccc=> 1000, ); my %hash2 = ( bbb=> 20, ); my %merge= (%hash1, %hash2, eee=> 'add'); use Data::Dumper; print Dumper \%merge;
で同じ結果に。
やっぱり一度、リファレンスから戻さないと結合できないみたい。
結局はリストの結合と同じね。
Category: Perl

