in reply to Re^2: Doing pair-exclusivity analysis and building a matrix
in thread Doing pair-exclusivity analysis and building a matrix

A couple of minor optimisations:

#! perl -slw use strict; use Data::Dump qw[ pp ]; my %names = map{ my( $name, $rest ) = split; $name, { map{ $_, undef } split ',', $rest }; } <DATA>; my @sortedKeys = sort keys %names; print "\t", join "\t", @sortedKeys; for my $i ( @sortedKeys ) { my @keysI = keys %{ $names{ $i } }; printf "%s\t", $i; for my $j ( @sortedKeys ) { my $nMatchingCitiesJ = grep{ exists $names{ $j }{ $_ } } @keysI; printf "%d\t", @keysI - $nMatchingCitiesJ; } print ''; } __DATA__ Name1 USA,Canada,Yemen Name2 Canada,Portugal,India Name3 China,HongKong,Canada Name4 London,Amsterdam,Ireland,USA Name5 India,USA,Canada

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?