我正在解析一个由十进制和十六进制值组成的文件,用“:”分隔:
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));
请告诉我如何将字符串转换为十进制
答案 0 :(得分:4)
由于问题出在你的字段中的多余空格,你应该像这样分开
split /\s*:\s*/, $line
如果有空格,那么空格将被移除,但如果没有,split
仍然可以正常工作。