在PERL中无法将字符串转换为十六进制

时间:2014-11-09 16:30:47

标签: perl perl-module mod-perl

我正在解析一个由十进制和十六进制值组成的文件,用“:”分隔:

foreach $line (<INFO>)  { 
    my ($seq_no, $size_in_bytes, $Hitcount, $buffer) = split /:/, $line;

    # $size in_bytes is a hexadecimal value.

    print "check 1 $size_in_bytes\n";      # printing some value in hexadecimal
    $size_in_bytes = hex($size_in_bytes);
    print "check 2  $size_in_bytes\n";     # Printing ZERO??
}

我尝试了下面的方法,但它仍然只给ZERO。

$dec_num = sprintf("%d", hex($num));

请告诉我如何将字符串转换为十进制

1 个答案:

答案 0 :(得分:4)

由于问题出在你的字段中的多余空格,你应该像这样分开

split /\s*:\s*/, $line

如果有空格,那么空格将被移除,但如果没有,split仍然可以正常工作。