package Digest::file; use strict; use Exporter (); use Carp qw(croak); use Digest (); use vars qw($VERSION @ISA @EXPORT_OK); $VERSION="0.01"; @ISA=qw(Exporter); @EXPORT_OK=qw(digest_file_ctx digest_file digest_file_hex digest_file_base64); sub digest_file_ctx{ my $file=shift; croak("No digest algorithm specified") unless @_; local *F; open(F,$file) || croak("Can't open '$file': $!"); binmode(F); my $ctx=Digest->new(@_); $ctx->addfile(*F); close(F); return $ctx;} sub digest_file{digest_file_ctx(@_)->digest;} sub digest_file_hex{digest_file_ctx(@_)->hexdigest;} sub digest_file_base64{digest_file_ctx(@_)->b64digest;} 1;