perl 中的十六进制值

Hexadecimal values in perl

我有一个正在阅读的文本文件,每一行都有一个我想存储在变量中的十六进制值。

例如 - 假设一行的格式为“mytext 1c”,然后我想将“1c”存储在一个变量中,然后执行一些涉及十六进制值的计算。

如何使用 Perl 执行此操作?

要在空格处分割一行,您可以使用split ' '

my @fields = split(' ', $line);   # In $fields[1]

my $hex = ( split(' ', $line) )[1];

根据你的例子,有一个键 + space(s) + 十六进制值:

my $line = "mytext 1c";
my ($key, $value) = split /\s+/, $line;  # Regexpr to handle 1 or more whitespaces

现在,如果要进行算术运算,请使用hex function$value转换为数字:

my $sum = hex($value) + 1;
printf "%x\n", $sum;       # <- prints: 1d