首页 > 解决方案 > 如何使用 Perl Digest::xxHash 计算文件的哈希值

问题描述

https://metacpan.org/pod/Digest::xxHash展示了如何计算字符串的哈希值。

my $hex_64  = xxhash64_hex( $data, $seed );

如何使用该模块快速计算大文件的哈希?

标签: perlhash

解决方案


感谢 brian d foy 提供的解决方案:

use Digest::xxHash;
use File::Map 'map_file';
map_file my $data, $file, '+<';
my $seed;
my $hex_64 = xxhash64_hex( $data, $seed );

大文件的大小可能是 GB,所以我不想像这样将它放入内存中:

use Digest::xxHash;
sysopen my $fh, $file, 0 or die;
my $data = do { local $/; <$fh> };
my $seed;
my $hex_64 = xxhash64_hex( $data, $seed );

推荐阅读