Why not take the last step too?
$ 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% --
Enjoy, Have FUN! H.Merijn