Algorithm-Hamming-Perl
view release on metacpan or search on metacpan
#!/usr/bin/perl
#
# example02 - example of converting bytes to hamming code, creating
# bit errors, then retrieving the original data.
#
# 18-Oct-2003 Brendan Gregg Created this.
use Algorithm::Hamming::Perl qw(hamming unhamming unhamming_err);
$data = "Hi";
### Hamming
$hamcode = hamming("$data");
print "input text: $data\n";
print "input text (as binary) : ",unpack("B*",$data),"\n";
print "hamming code (as binary) : ",unpack("B*",$hamcode),"\n";
$binary = unpack("B*",$hamcode);
$binary =~ s/1$/0/; # flip last bit (error on byte 2)
$binary =~ s/^010/011/; # flip third bit (error on byte 1)
$hamerr = pack("B*",$binary);
### UnHamming
($unham,$err) = unhamming_err($hamerr);
print "hamming code (with errors): $binary\n";
print "retrieved text (as binary): ",unpack("B*",$unham),"\n";
print "retrieved text : $unham\n";
print "bytes corrected: $err\n";
( run in 1.206 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )