Here are a couple of routines I used to convert some hex data fields...
sub DecodeBCD {
# Convert a string of hex digits such as "x\12x\34x\56"
# into a string of ASCII characters such as "123456".
my $str = shift;
my $hex;
$hex .= sprintf "%02x", ord
for split //, $str;
return $hex;
} # End of Sub DecodeBCD
sub DecodeBCA {
# Convert a string of packed ALPHA digits such as "x\BDx\CCx\FF"
# into a string of ASCII characters such as "BDCCFF".
my $str = shift;
my $hex;
if (length($str) > 0) {
$hex .= sprintf "%02x", ord
for split //, $str;
} else {
$hex = 0;
}
return $hex;
} # End of Sub DecodeBCD
Bugs/Blames are mine, any credit goes to the Monestary.
Too many monks to mention had a hand in this, it was my first perl program, & not so long ago. ;-)