while (my @row = $sth->fetchrow_array()){ my $parser = XML::LibXML->new(); my $doc = $parser->parse($row[0]); my $root = $doc->documentElement(); my %linked_counts_by_abbr; for my $usage_node ($root->findnodes('/BookReferences/BookUsage')) { my $abbr = $usage_node->getAttribute('BookAbbr'); my $linked_count = $usage_node->getAttribute('LinkedCount'); $linked_counts_by_abbr{$abbr} += $linked_count; } foreach (my ($key, $value) = each %linked_counts_by_abbr){ print OUTPUT "$key => $value\n"; } }