Я пытаюсь преобразовать строку шестнадцатеричных цифр в двоичную строку.Если моя входная строка 41424344, то я бы хотел, чтобы строка сохраняла «ABCD».Как это можно сделать?
Вы можете сделать это без использования регулярных выражений с помощью pack:
pack
print pack 'H*', '41424344';
Выход:
ABCD
s/([a-f0-9][a-f0-9])/chr(hex($1))/egi;
Канонический метод:
$input_string =~ s/(..)/chr(hex($1))/ge;
Это читает два символа за раз от ввода, вызывая hex (преобразование шестнадцатеричного числа в десятичное число) и затем chr (преобразование десятичного числа в символ) на каждом входе.
hex
chr