在 Perl 中,如何将文件一行中的多个十进制数转换为它们的十六进制等价物?
我有代码可以转换找到的最后一个数字,但不转换之前的数字,我想转换所有数字,而不仅仅是最后一个找到的数字:
if ($line =~ /[0-9]+/) {
$loc = index($line,/\s+[0-9]+\s*/);
$mybyte = substr($line,$loc);
$newbyte = sprintf("%x\n", $mybyte);
$newline = substr($line,0,$loc).$newbyte;
print my_report $newline;
}
最佳答案
$line =~ s/([0-9]+)/sprintf "%X", $1/eg;
关于perl - 在 Perl 中,如何将字符串中的多个十进制数字转换为它们的十六进制等效值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270489/