Perl中是否有一个包/函数可以让我轻松完成
我想到的最好的主意是
将我的结构序列化为一个字符串(例如使用Data :: Dumper)
使用MDx对字符串进行哈希处理
但也许有一些更优雅的方式.
在过去,我使用Data :: Dumper(带有排序键,如@mob所指)+ Digest :: MD5方法来创建复杂数据结构的校验和.就我而言,目的是比较两个或多个数据结构的相等性.
(非常)简单片段:
use Data::Dumper qw( Dumper ) ;
use Digest::MD5 qw( md5_hex) ;
sub digest {
my $data = shift ;
local $Data::Dumper::SortKeys = 1;
return md5_hex( Dumper($data) ) ;
}
Run Code Online (Sandbox Code Playgroud)
概要:
my $cplx_data_checksum = digest({
c => 1 ,
b => [ 1 , { a => 2 } ]
}) ;
Run Code Online (Sandbox Code Playgroud)
有关Digest algo速度的见解,请访问https://metacpan.org/pod/Digest#Digest-speed查看Digest Perl模块.
希望这可以帮助