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

时间:2014-05-11 03:27:29

标签: arrays perl byte

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

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

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

1 个答案:

答案 0 :(得分:7)

输入记录分隔符 $/通常设置为一个字符串(通常为换行符"\n"),表示文件中每条记录的结尾。

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

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

use strict;
use warnings;
use autodie;

my @data = do {
  open my $fh, '<:raw', 'myfile';
  local $/ = \10;
  <$fh>;
};

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

local $/ = \'10';

或包含整数或字符串

的变量
my $record_size = 10;
local $/ = \$record_size;