0

重複の可能性:
perl でキーが同じ場合にハッシュ値を連結する

キーの複数の値をハッシュに保存したい。例:

Input:
SMP00001    HMDB00641
SMP00001    HMDB00051
SMP00001    HMDB00052
SMP00003    HMDB00051
SMP00003    HMDB00517
SMP00004    HMDB00243

Output:
SMP00001: HMDB00641,HMDB00051,HMDB00052
SMP00003: HMDB00051,HMDB00517
SMP00004: HMDB00243

ここに私が書いたコードがあります:

push(@{$hash{$smp_id}},$HMDB_id);

コンテンツをハッシュで出力すると、出力は次のようになります。

SMP00001 => ARRAY(0x161da40)
SMP00003 => ARRAY(0x11be28)
SMP00004 => ARRAY(0x1265c8)
4

2 に答える 2

2

ハッシュテーブルの値は配列参照であるため、要素を表示するにはそれらを逆参照する必要があります。つまり、代わりに

print "$key => $hash{$key}\n";

いう

print "$key => @{$hash{$key}}\n";
于 2012-08-11T02:37:45.960 に答える
1
print "$_: ", join(',', @{$hash{$_}}), "\n" for keys %hash;
于 2012-08-11T02:43:56.893 に答える