1
我想將位於$ 1,$ 2,$ 3和$ 4中的十六進制值轉換爲二進制文件並保存到數組中。我知道$ 1只是一個字符串,所以我想將它轉換轉換爲二進制之前詛咒,但它不工作...這裏是我的代碼:在Perl中將十六進制轉換爲二進制文件
#! usr/bin/perl
use warnings;
use strict;
while(<>)
{
if(/SIB_DBG/)
{
if(/TTRB:\s*([\da-f]+)\s([\da-f]+)\s([\da-f]+)\s([\da-f]+)/ ||
/ETRB:\s*([\da-f]+)\s([\da-f]+)\s([\da-f]+)\s([\da-f]+)/ ||
/Command\sETRB\s*([\da-f]+)\s([\da-f]+)\s([\da-f]+)\s([\da-f]+)/)
{
my $one = $1;
my $two = $2;
my $three = $3;
my $four = $4;
print "$_ $one $two $three $four\n";
printf("binary :%b\n",$four);
}
}
}
我輸入日誌文件就像
Aug 31 15:25:53 usb3 kernel: [ 78.812034] SIB_DBG TTRB:01000680 00080000 00000008 00030840, PTR: ffff88005ff8b800
Aug 31 15:25:53 usb3 kernel: [ 78.815428] SIB_DBG ETRB: 5ff8b850 00000000 01000000 01018001
而且我得到一個錯誤,在某些行說..
爭論 「f8891」 是不是在printf的數字在script.plx線21,<>行6.