sub sumit { my $sum = 0; map { $sum += $_ } split //, @_ ? $_[0] : $_; $sum } my @sums = map { sumit } map { sumit hex } split /\-/, '86C86720-42A0-1069-A2E8-08002B30309D'; print sprintf "%s\n", join '+', @sums;