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