sub checksum { my $s = shift; utf8::downgrade($s, 1) or croak("Wide character in subroutine entry"); return unpack("%32C*", $s) % 65535; } #### sub checksum { my $s = shift; if (defined(&utf8::downgrade)) { utf8::downgrade($s, 1) or croak("Wide character in subroutine entry"); } return unpack("%32C*", $s) % 65535; }