да предположим, че имам следните данни
клъстер1:d(A),f(C)s,(A)
клъстер2: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";
}
}
ДАННИ
клъстер1:d(A),f(C)s,(A)
клъстер2:r(D),h(D),f(A)