私は大きなものと小さいものの2つのハッシュを持っています。小さなハッシュのキーはすべて、より大きいハッシュに表示されますが、値は異なります。大きなハッシュの値を小さなハッシュにコピーしたい。perlのあるハッシュから別のハッシュへの値のコピー
EG:
# I have two hashes like so
%big_hash = (A => '1', B => '2', C => '3', D => '4', E => '5');
%small_hash = (A => '0', B => '0', C => '0');
# I want small_hash to get the values of big_hash like this
%small_hash = (A => '1', B => '2', C => '3');
明白な答えは、小さなハッシュのキーをループにすること、そしてこの
foreach $key (keys %small_hash) { $small_hash{$key} = $big_hash{$key}; }
のような値をコピーしますが、これを行うために短い方法はあります?
%small = map { $_, $big{$_} } keys %small;
Althoループのためにかなり似ています:
あなたのコードを修正:ハッシュテーブルは一緒に行く '()'、のみハッシュテーブルの参照が行きます'{} 'で終わります。 – Lumi
申し訳ありませんが、修正されました。 –