#!/usr/bin/env perl -w use strict; use warnings; use File::Find; use Digest::MD5::File qw(file_md5_hex); my $local_dir = $ARGV[0]; my %localData; finddepth ( \&wanted, $local_dir); sub wanted { if (-f $_) { my $fileName = $File::Find::name; unless ( $fileName =~ m{.*~\..*|\.DS_Store|\.svn|CVS} ) { $fileName =~ s{$local_dir(.+)}{\.$1}; $localData{$fileName} = file_md5_hex($File::Find::name); } } }