gpt4 book ai didi

perl - 如何从 Perl 中的二进制文件读取 unsigned int?

转载 作者:行者123 更新时间:2023-12-03 01:05:02 27 4
gpt4 key购买 nike

假设我有一个格式如下的二进制文件

    [unsigned int(length of text)][text][unsigned int(length of text)][text][unsigned int(length of text)][text]

文件的模式不断重复。如何读取 unsigned int 并将其打印出来,然后在 Perl 中打印文本 block ?

再次强调,这是一个二进制文件,而不是纯文本文件。

最佳答案

这是一个小的工作示例。

#!/usr/bin/perl

use strict;
use warnings;

my $INT_SIZE = 2;
my $filename = 'somefile.bin';

open my $fh, '<', $filename or die "Couldn't open file $filename: $!\n";

binmode $fh;

while ( read $fh, my $packed_length, $INT_SIZE ) {

my $text = '';
my $length = unpack 'v', $packed_length;

read $fh, $text, $length;

print $length, "\t", $text, "\n";
}

更改 INT_SIZE 以及解包模板的大小和字节顺序以适应(“v”或“n”或“V”或“N”)。请参阅unpack联机帮助页了解更多详细信息。

关于perl - 如何从 Perl 中的二进制文件读取 unsigned int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1369863/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com