use strict; use Data::Dumper; use File::Compare; my @files = qw( file0 file1 file2 ); my @results; foreach my $i (0..$#files){ $results[$i] = []; #Already compared these foreach my $j(0..($i-1)){ $results[$i][$j] = $results[$j][$i]; } #Same File $results[$i][$i] = 1; #New Comparisons foreach my $j(($i+1)..$#files){ $results[$i][$j] = compare($files[$i],$files[$j]); } } print Dumper \@results;