#!/usr/bin/env perl use warnings; use strict; use Digest::MD5; sub md5sum{ my $file = shift; my $digest = ""; eval{ open(FILE, $file) or die "[ERROR] md5sum: Can't find file $file\n"; my $ctx = Digest::MD5->new; $ctx->addfile(*FILE); $digest = $ctx->hexdigest; close(FILE); }; if($@){ print $@; return ""; } return $digest; } sub usage{ print "usage: ./md5sum.pl filename\n"; exit 1; } if($#ARGV + 1 != 1){ usage(); } my $fname = $ARGV[0]; my $md5 = md5sum($fname); if($md5 ne ""){ print $md5." ".$fname."\n"; }else{ exit 1; } exit 0;