### Functional interface: use Crypt::Checksum::Adler32 ':all'; # calculate Adler32 checksum from string/buffer $checksum_raw = adler32_data($data); $checksum_hex = adler32_data_hex($data); $checksum_int = adler32_data_int($data); # calculate Adler32 checksum from file $checksum_raw = adler32_file('filename.dat'); $checksum_hex = adler32_file_hex('filename.dat'); $checksum_int = adler32_file_int('filename.dat'); # calculate Adler32 checksum from filehandle $checksum_raw = adler32_file(*FILEHANDLE); $checksum_hex = adler32_file_hex(*FILEHANDLE); $checksum_int = adler32_file_int(*FILEHANDLE); ### OO interface: use Crypt::Checksum::Adler32; $d = Crypt::Checksum::Adler32->new; $d->add('any data'); $d->add('another data'); $d->addfile('filename.dat'); $d->addfile(*FILEHANDLE); $checksum_raw = $d->digest; # raw 4 bytes $checksum_hex = $d->hexdigest; # hexadecimal form $checksum_int = $d->intdigest; # 32bit unsigned integer
You can export selected functions:
use Crypt::Checksum::Adler32 qw(adler32_data adler32_data_hex adler32_data_int adler32_file adler32_file_hex adler32_file_int);
Or all of them at once:
use Crypt::Checksum::Adler32 ':all';
$checksum_raw = adler32_data('data string'); #or $checksum_raw = adler32_data('any data', 'more data', 'even more data');
$checksum_hex = adler32_data_hex('data string'); #or $checksum_hex = adler32_data_hex('any data', 'more data', 'even more data');
$checksum_int = adler32_data_int('data string'); #or $checksum_int = adler32_data_int('any data', 'more data', 'even more data');
$checksum_raw = adler32_file('filename.dat'); #or $checksum_raw = adler32_file(*FILEHANDLE);
$checksum_hex = adler32_file_hex('filename.dat'); #or $checksum_hex = adler32_file_hex(*FILEHANDLE);
$checksum_int = adler32_file_int('filename.dat'); #or $checksum_int = adler32_file_int(*FILEHANDLE);
$d = Crypt::Checksum::Adler32->new;
$d->clone();
$d->reset();
$d->add('any data'); #or $d->add('any data', 'more data', 'even more data');
$d->addfile('filename.dat'); #or $d->addfile(*FILEHANDLE);
BEWARE: You have to make sure that the filehandle is in binary mode before you pass it as argument to the addfile() method.
$result_raw = $d->digest();
$result_hex = $d->hexdigest();
$result_int = $d->intdigest();