$ cat test.pl use 5.16.2; use warnings; use Benchmark qw( cmpthese ); use List::Util qw( reduce sum ); my $count = 12; my $address = "A42187B56F"; my $data = "39AD0D96D51CD3"; my $r = sub { reduce { $a + $b } map { hex $_ } ($count, $address =~ m/../g, $data =~ m/../g); }; my $s = sub { sum map { hex } $count, (unpack "(A2)*", $address), (unpack "(A2)*", $data); }; say $r->(); say $s->(); cmpthese (-2, { LUreduce => $r, LUsum => $s }); $ perl test.pl 1487 1487 Rate LUreduce LUsum LUreduce 216392/s -- -40% LUsum 359162/s 66% --