#! perl -sw use 5.010; use strict; my( $i, @patNos, @data ) = 0; while( <> ) { my @bits =split ','; $patNos[ $i ] = shift @bits; $data[ $i++ ] = pack 'b480', @bits; } open OUT, '>', 'variances.csv' or die $!; my @variances; for my $first ( 0 .. $#patNos ) { for my $second ( 0 .. $#patNos ) { next if $first == $second; say OUT "$patNos[ $first ], $patNos[ $second ], ", unpack '%32b*', ( $data[ $first ] ^ $data[ $second ] ); } } close OUT;