#!/usr/bin/perl use strict; sub toBitstring { my $bits = chr(0) x int( (($#_)/8)+1 ); vec( $bits, $_, 1 ) = $_[ $_ ] for 0 .. $#_; return $bits; } sub fromBitstring { join '', map vec( $_[0], $_, 1 ), 0 .. length( $_[ 0 ] ) * 8; } my (@patNos, @data) = 0; my $line = "44444,1,1,0,0,0,1,1,1"; my @bits = split ',',$line; $patNos[0] = shift @bits; print "$patNos[0] - @bits\n"; $data[0] = toBitstring @bits; $line = "55555,0,1,1,0,0,1,0,1"; @bits = split ',',$line; $patNos[1] = shift @bits; print "$patNos[1] - @bits\n"; $data[1] = toBitstring @bits; my $line1 = fromBitstring $data[0]; my $line2 = fromBitstring $data[1]; my $variance = unpack '%32b*', ($data[0] ^ $data[1]); print "\nline 1: $line1\n"; print "line 2: $line2\n"; print "\nvariance: $variance\n";