我正在使用 unpack 函数将二进制文件的内容转换为十六进制。
我这样做如下:
#! /usr/bin/perl
use strict;
use warnings;
my $input=$ARGV[0];
open(INPUT,'<',$input) || die("Couldn't open the file, $input with error: $!\n");
my $value=<INPUT>;
$value=unpack("H*",$value);
print $value,"\n";
这会将二进制输入文件的内容打印为十六进制字符串。
但是,问题在于,在解析二进制文件的内容时,如果遇到字节 0xa(换行符),解包函数会在该点停止。
因此,我在 $value 变量中得到了不完整的输出。
几个例子:
65 2E 0D 0D 0A 24 00 00 00 00 00 00 00 BA DC 95 DC FE BD
FE FF FF FF 07 00 00 00 08 00 00 00 09 00 00 00 0A 00 00 00 0B 00 00 00 0C 00
字节后的所有内容,0xa 不被 unpack 解析。
那么,有没有办法对完整的二进制文件使用 unpack ,这样它就不会在遇到换行符时停止解析?
谢谢。