I offer this slightly more compact code:
use strict;
my $out = "12315141800F1F5F3F3F63410026DE8F45";
for my $hex ($out =~ /(\S{2})/g) { # split the strings into chunks of
+ two chars
printf "hex => %s, binary => %08B\n", $hex, hex($hex);
}
__OUTPUT__
hex => 12, binary => 00010010
hex => 31, binary => 00110001
hex => 51, binary => 01010001
hex => 41, binary => 01000001
hex => 80, binary => 10000000
hex => 0F, binary => 00001111
hex => 1F, binary => 00011111
hex => 5F, binary => 01011111
hex => 3F, binary => 00111111
hex => 3F, binary => 00111111
hex => 63, binary => 01100011
hex => 41, binary => 01000001
hex => 00, binary => 00000000
hex => 26, binary => 00100110
hex => DE, binary => 11011110
hex => 8F, binary => 10001111
hex => 45, binary => 01000101
*My* tenacity goes to eleven...