http://qs321.pair.com?node_id=1196328


in reply to List Duplicate Files in a given directory

Here is a solution that uses Path::Tiny. See Path::Tiny: The little module that keeps on giving for a nice introduction to Path::Tiny.
#!/usr/bin/env perl use strict; use warnings; use Path::Tiny; my $dir = shift or die 'No directory given'; my $dir_path = path($dir); unless($dir_path->is_dir){ die "$dir is not a directory"; } my %files_of; foreach my $file_path ($dir_path->children){ my $digest = $file_path->digest; # default is SHA-256 #my $digest = $file_path->digest('MD5'); # use this if you want MD +5 push @{$files_of{$digest}}, $file_path->basename; } foreach my $digest (keys %files_of){ my @files = @{$files_of{$digest}}; if( scalar @files > 1){ print join(', ', @files), " are duplicates.\n"; } } exit;