如何使用Perl访问文件中的特定字节范围?

时间:2010-04-16 19:13:13

标签: perl file

将磁盘上文件的指定字节范围提取到变量中最方便的方法是什么?

2 个答案:

答案 0 :(得分:5)

seek到范围的开头,read所需的字节数(或sysseek / sysread - 请参阅nohat的评论)。

open $fh, '<', $filename;
seek $fh, $startByte, 0;
$numRead = read $fh, $buffer, $endByte - $startByte; # + 1
&do_something_with($buffer);

答案 1 :(得分:3)

有时我喜欢使用File::Map,它会懒惰地将文件加载到标量中。这将它变成字符串操作而不是文件句柄操作:

    use File::Map 'map_file';

    map_file my $map, $filename;

    my $range = substr( $map, $start, $length );