#!/usr/bin/perl use strict; use warnings; use Text::Bayon; my $bayon = Text::Bayon->new; my %distanz; while(<>){ chomp; my ($bez1, $bez2, $dis) = split /;/; $distanz{$bez1}->{$bez2} = $dis; } my $hash_ref = \%distanz; my $output = $bayon->clustering($hash_ref); my %hash = %$output; my %extr_dist; foreach my $key (sort keys %hash){ my $cl_inhalt = join(', ', @{$hash{$key}}); my @arr = split(/, /, $cl_inhalt); # Extraktion Inputdatei (Distanztabelle) & Erstellung neues Hash for(my $i=0;$i<=$#arr;$i++){ for(my $j=$i+1;$j<=$#arr;$j++){ if(defined $distanz{$arr[$i]}->{$arr[$j]}){ $extr_dis{$arr[$i]}->{$arr[$j]}=$distanz{$arr[$i]}->{$arr[$j]}; } else{ $extr_dis{$arr[$i]}->{$arr[$j]}->0; } } } print "Cluster $key\t($#{$hash{$key}})\t$cl_inhalt\n\n"; }