私は以下のように、キーと値のペアのリストをperlハッシュに 'push'しようとしています。配列がハッシュに割り当てられたときにキーと値のペアが割り当てられるように動作すると思いました。 @targets
には、各要素のタブ区切り文字列が含まれています。しかし、マップループの繰り返しごとに、ハッシュが上書きされ、最後には@targets
の最後の要素に対応するハッシュ内に1つのキーと値のペアがあります。私は通常の$ID_Gene{$key}=$value
型の割り当てを避けようとしています。Perlハッシュのキーと値のペアのリストをプッシュする
リストをキー値ペアとしてハッシュにプッシュするにはどうすればよいですか?
また、私は無名ハッシュを構築し、元のハッシュにそのハッシュをプッシュすることができますどのような方法がありますように:?%ID_Gene = (%ID_Gene, %AnonyHash);
あなたはほとんどそこにいる
my %ID_Gene;
map{ %ID_Gene= (split /\t/,$_) ;
}@targets;
私は2番目と3番目の解決策が大好きです。 '%ID_Gene'が十分大きければ、それ自身の内容で作られたリストを使ってそれを再初期化することは非効率的かもしれません。 – tjd
@tjd合意。私は '私の$ target(@targets){my($ k、$ v)= split/\ t /、$ target; $ ID_Gene {$ k} = $ v; } '既存のハッシュのために。 – ThisSuitIsBlackNot
@ThisSuitIsBlackいいえ、時にはそれは良いですが、OPは具体的にその解決策を求めていません:) – hobbs