while(@fnames) { my $f = shift @fnames; for my $f2 (@fnames) { last if($size{$f} != $size{$f2}); #### my %filesets; for ( @fnames ) { push @{ $filesets{ -s $_ } }, $_; } # filter out any lists that have only one element: for ( keys %filesets ) { @{$filesets{$_}} <= 1 and delete $filesets{$_}; } #### my %filesets; for ( @fnames ) { my $size = -s $_; my $csum = `sum "$_"`; push @{ $filesets{$size.$csum} }, $_; }