使用Perl从文件中读取固定长度的记录

use*_*221 0 arrays perl byte

有没有办法从文件中获取字节并将其存储在Perl数组中?

例如,如果我的文件有100个字节,我希望能够创建一个数组,其中每个元素包含10个字节.

我知道如何创建数组和存储行,但我不知道如何只获取字节.

Bor*_*din 7

所述输入记录分隔符 $/通常被设定为字符串(通常换行符"\n")指示文件中的每个记录的末尾.

但是,它也可以(临时)设置为指定固定长度记录大小的整数的引用.

您也可能希望以原始(二进制)模式读取文件,因此您的代码看起来像这样

use strict;
use warnings;
use autodie;

my @data = do {
  open my $fh, '<:raw', 'myfile';
  local $/ = \10;
  <$fh>;
};
Run Code Online (Sandbox Code Playgroud)

注意,如果更方便,长度可以是字符串

local $/ = \'10';
Run Code Online (Sandbox Code Playgroud)

或包含整数或字符串的变量

my $record_size = 10;
local $/ = \$record_size;
Run Code Online (Sandbox Code Playgroud)