我用Perl读取了一个图像:
open (FILE,"<$filename") or die $!;
binmode FILE;
while (($n = read FILE, $data, 4) != 0) {
$buf .= $data;
}
close (FILE);
如何才能从此文件中获取最后16个字节? Backgound是,我想比较一个图像的最后16个字节和另一个图像的最后16个字节。
答案 0 :(得分:5)
使用seek移动到文件结束前的16个字节,然后读取16个字节:
open (FILE, "<$filename") or die $!;
binmode FILE;
seek FILE, -16, 2;
read FILE, $data, 16;
close (FILE);
您也可以使用常量而不是2
:
use Fcntl qw(SEEK_END);
open (FILE, "<$filename") or die $!;
binmode FILE;
seek FILE, -16, SEEK_END;
read FILE, $data, 16;
close (FILE);