【发布时间】:2012-09-06 09:05:09
【问题描述】:
假设我有以下数据
cluster1:d(A),f(C)s,(A)
cluster2:r(D),h(D),f(A)
我想把这个放出来
输出:
cluster1:A->2
cluster1:C->1
cluster2:D->2
cluster2:A->1
这是我的尝试,但它不正确,我试图计算字符的部分有一个我无法修复的问题 该代码是非常大代码的一部分,我想要的是多维哈希
use strict;
use Data::Dumper;
my %count;
while (<DATA>) {
my %HoH;
my ( $cluster, $ch ) = split (/:/,$_);
$HoH{$cluster}={split /[()]+/,$ch};
for my $clust ( keys %HoH ) {
for my $character ( keys %{ $HoH{$clust} } ) {
$count{$clust}{$HoH{$clust}{$character}}++;
}
}
}
print Dumper(\%count);
foreach my $name (sort keys %count) {
foreach my $subject (keys %{$count{$name}}) {
print "$name:$subject->$count{$name}{$subject}\n";
}
}
数据
cluster1:d(A),f(C)s,(A)
cluster2:r(D),h(D),f(A)
【问题讨论】:
-
现在输入格式也大不一样了。
-
@flesk: 是的,我应该从一开始就写好所有东西,现在这段代码有一个小错误
标签: perl hash multidimensional-array