我正在讀取一個二進制文件格式,它以4個常量校驗字節開始,後面跟着3個八位字節,表示記錄的數據部分將會有多長。我可以解碼如下:在Perl中解碼3字節整數
read($fh, $x, 7) or do {
last if eof;
die "Can't read: $!";
};
my ($type, $l1, $l2, $l3) = unpack("a4 C3", $x);
my $length = $l1 << 16 | $l2 << 8 | $l3;
是否有更直接的方式來讀取該3字節值,沒有中間變量?我錯過了pack
規格中的某些東西?除了十六進制編碼和其他一些困難追求之外,我還沒有非常使用pack
。
聽起來很不錯,謝謝。 – 2013-03-20 03:08:27