[英]Perl: Checksum of complex data-structure
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) ) ;
}
概要:
my $cplx_data_checksum = digest({
c => 1 ,
b => [ 1 , { a => 2 } ]
}) ;
有關 Digest 算法速度的見解,請查看https://metacpan.org/pod/Digest#Digest-speed上的 Digest Perl 模塊
希望這可以幫助
我會考慮使用
我已經將它用於類似的問題,並且對它非常滿意,它速度很快,提供了我能想到的所有選項,而且我根本沒有花很長時間就開始使用它。
例如,它允許您選擇如何處理對象,以及是否對哈希鍵進行排序,這非常有用。
玩得開心!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.