I think I am getting it now... I so dumb I was trying out a way to add them up in the matrix, when your simple solution is to add them up before! Whay didn't I think of that first!
list
----
HAT KNIFE 1
HAT KNIFE 7
BALL KNIFE 3
CAT CLOTH 1
DOG CLOTH 2
code
----
my %matrix;
while (<>) {
my ($id1, $id2, $int) = split;
$matrix{$id1}{$id2} += $int;
}
foreach $key1 (keys %matrix) {
foreach $key2 (keys %{%matrix->{$key1}}) {
print "\$matrix{$key1}{$key2} = $matrix{$key1}{$key2}
+";
}
print"\n";
+
}
output
------
$matrix{CAT}{CLOTH} = 1
$matrix{DOG}{CLOTH} = 2
$matrix{HAT}{KNIFE} = 8
$matrix{BALL}{KNIFE} = 3
Last question please.. do you have a good code snippet to put it in the matrix afterwoods please?
CLOTH KNIFE
BALL 0 3
HAT 0 8
DOG 1 0
CAT 1 2
|