簡體   English   中英

無法在PERL中將字符串轉換為十六進制

[英]unable to convert string to hex in 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??
}

我也嘗試了以下方法,但仍然只給出零。

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

你能告訴我如何將字符串轉換為十進制嗎

由於問題出在字段中多余的空間上,因此您應該像這樣拆分

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

這樣,如果有空格,空格將被刪除,但是如果沒有空格, split仍然可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM