【问题标题】:Hexadecimal values in perl [closed]perl中的十六进制值
【发布时间】:2021-03-06 20:41:45
【问题描述】:

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

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

如何使用 Perl 做到这一点?

【问题讨论】:

    标签: linux perl scripting hex


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      根据您的示例,有一个键 + 空格 + 十六进制值:

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-26
        • 2013-07-04
        • 1970-01-01
        • 1970-01-01
        • 2015-02-22
        相关资源
        最近更新 更多