まあ、個々のディレクトリからファイル名を取ってくるところは省くとして

my %uniq = () ;
my @data = ( ### ファイル名一覧 ) ;
for my $id ( @data ){
for my $id2 ( @data ){
next if $id eq $id2 ;
$uniq{$id . '.' $id2} ++ if ! defined $uniq{$id . '.' . $id2} and ! defined $uniq{$id2 . '.' . $id} ;
}
}
print $_ . "¥n" for keys %uniq ;

って漢字?