Reputation: 137
I'm trying to convert a string of hex digits to a binary string. If my input string is 41424344, then I would want the string to store "ABCD". How can this be done?
Upvotes: 7
Views: 10603
Reputation: 33908
You can do it without using regex with help of pack
:
print pack 'H*', '41424344';
Output:
ABCD
Upvotes: 16
Reputation: 118605
The canonical method is
$input_string =~ s/(..)/chr(hex($1))/ge;
This reads two characters at a time from the input, calling hex
(converting a hexidecimal number to a decimal number) and then chr
(converting a decimal number to a character) on each input.
Upvotes: 1