$data[1] = "\xA3"; $data[2] = "\x05"; $data[3] = "\x00"; $data[4] = "\x00"; $data[5] = "\x00"; $data[6] = "\x00"; $data[7] = "\x00"; $data[0] = normalChecksum8(@data); #################################################################### sub normalChecksum8 { my $a; my $b; foreach (@_) { $a += pack("C",$_); } $b = $a / 256; $b = $a / 256; $a = ($a - 256 * $b) + $b; $b = $a / 256; return pack("C", (($a-256*$b)+$b)); }