in reply to Digest::MD5 Bug?

from the perldoc:
$md5->digest

Return the binary digest for the message. Note that the digest operation is effectively a destructive, read-once operation. Once it has been performed, the Digest::MD5 object is automatically reset and can be used to calculate another digest value.

$md5->b64digest

Same as $md5->digest, but will return the digest as a base64 encoded string.

You will have to run the whole file in again if you want to compute the fingerprint a second time.