Thanks! OK, got it and tried it. The documentation is a bit sparse, but using String::CRC gives rise to a program like so:
use strict;
use warnings;
use String::CRC;
my $message = $ARGV[0];
my $crc16 = crc($message);
print "CRC16 in decimal: $crc16\n";
print "CRC16 in hex:\n ", unpack('H*', pack('S', $crc16)), "\n";
Running the program gives this output:
cradcliff% ./crc16-modular.pl foo
CRC16 in decimal: 1736882148
CRC16 in hex:
b7e4
cradcliff% ./crc16-modular.pl foobar
CRC16 in decimal: 3375757715
CRC16 in hex:
f993
cradcliff% ./crc16-modular.pl foobaz
CRC16 in decimal: 3375757723
CRC16 in hex:
f99b
More simply:
'foo' => 0xb7e4
'foobar' => 0xf993
'foobaz' => 0xf99b
Can anyone verify that these are correct values for a CRC-16 checksum, assuming the conditions I specified earlier? Alternately, can anyone supply sample string-checksum pairs I can use to test this program?
Thanks, ~c |