>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% --