anahtar/değer çiftlerinin bir listesini itme Ben bir anahtar/değer çiftleri listesini aşağıdaki gibi bir perl karma içine 'itmeye çalışıyorum. Bir dizi bir karma atandığında anahtar-değer çiftleri atanmış gibi çalışacağını düşündüm. @targets
, her öğe için sekmeyle ayrılmış dizeler içerir. Bununla birlikte, harita döngüsünün her yinelemesi için, karma, üzerine yazılmıştır ve sonunda, @targets
'un son elemanına karşılık gelen hashta yalnızca bir anahtar-değer çiftini aldım. Her zamanki gibi $ID_Gene{$key}=$value
tür atamaları önlemek için çalışıyorum.Perl Hash
Bir listeyi karta anahtar-değer çifti olarak nasıl ittirirsiniz?
Alternatif Ben isimsiz karma oluşturmak ve daha sonra özgün karma bu karma zorlayabilir bir yolu var mı gibi:? %ID_Gene = (%ID_Gene, %AnonyHash);
Neredeyse geldin
my %ID_Gene;
map{ %ID_Gene= (split /\t/,$_) ;
}@targets;
İkinci ve üçüncü çözümleri sevdiğimden emin değilim. Eğer '% ID_Gene' yeterince büyükse, kendi içeriğinden yapılmış bir liste ile yeniden başlatılması biraz verimsiz olabilir. – tjd
@tjd Anlaşmalı. $ Target'ımı (@targets) {my ($ k, $ v) = split/\ t /, $ target; $ ID_Gene {$ k} = $ v; Mevcut bir karma için. – ThisSuitIsBlackNot
@ThisSuitIsBlackNot kararlaştırdı, bazen daha iyi, ama OP özellikle bu çözümü istemedi :) – hobbs