getstate#
Export a Digest::SHA object’s state as a packed binary string.
Returns the full hashing state — the intermediate hash values, buffered
partial block, block counter, and message length counters — as a binary
scalar. Pair with _putstate to restore the state later, for example
when resuming a long hash across processes or persisting it to disk.
Prefer the text-based getstate / putstate pair for human-readable
output or for interchange across endianness. The binary form here is
native-byte-order and tightly packed.
Synopsis#
my $blob = $sha->_getstate;
What you get back#
A binary string of fixed length: 116 bytes for SHA-1/224/256, 212 bytes for SHA-384/512/512-224/512-256.
Examples#
my $sha = Digest::SHA->new(256);
$sha->add("hello ");
my $snapshot = $sha->_getstate;
my $other = Digest::SHA->new(256);
$other->_putstate($snapshot);
$other->add("world");
print $other->hexdigest; # same as full "hello world" hash
## Persist a half-finished hash to disk:
open my $fh, ">", "hash.state" or die $!;
binmode $fh;
print $fh $sha->_getstate;
Edge cases#
The output is binary and includes null bytes; never interpret it as text.
Called on a non-
Digest::SHAobject, returnsundef.
Differences from upstream#
Fully compatible with upstream Digest::SHA 6.04.
See also#
_putstate— restore state produced by this method.getstate— human-readable text variant.dump/load— higher-level convenience wrappers around text state.