>perl -wE "say unpack '%8C*', qq(\x{01}\x{02}\x{ff})"
2
####
sysread ( $FileHandle, $Buffer, $Size, $ChecksumByteOffset ) or die;
$Checksum = unpack '%C*', $Buffer;
####
>perl -wE "say 1 + unpack 'S', 0"
Use of uninitialized value in addition (+) at -e line 1.
1
####
use strict;
use warnings;
use Benchmark 'cmpthese';
cmpthese -3, {
packing => sub { my $sum = 0; $sum = unpack("S", pack("S", $sum + $_)) for 0..1e6 },
modulo => sub { my $sum = 0; $sum = ($sum + $_) % 65536 for 0..1e6 },
}
__END__
Rate packing modulo
packing 1.67/s -- -71%
modulo 5.79/s 247% --