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?
3 Answers
Comments
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.
2 Comments
mob
@daxim - Citing anything as canon in Perl risks starting a holy war and I respect your difference of opinion. The
CGI module currently uses the .../chr hex $1/ge idiom, but upon further research I find that its technique to unescape HTML has gone through many other incarnations.brian d foy
Lincoln Stein, the creator of CGI.pm, was anything but canonical. He invented ways of doing things that nobody else would use. :)