my %ent; my %seen; foreach my $ort_von (sort keys %entfernung) { foreach my $ort_nach (sort keys %entfernung) { next if($ort_von eq $ort_nach); #Entfernung zu sich selbst zu errechnen ist sinnlos next if($seen{"$ort_von$ort_nach"}); #diese Entfernung wurde bereits berechnet $seen{"$ort_von$ort_nach"}=1; #Entfernung A->B $seen{"$ort_nach$ort_von"}=1; #Entfernung B->A $ent{$entfernung{$ort_von}{$ort_nach}}={"von"=>$ort_von, "nach"=>$ort_nach}; } } foreach my $distance (sort { $a <=> $b } keys %ent) { say "Entfernung von: " .$ent{$distance}{"von"}." - nach: ".$ent{$distance}{"nach"}." - " . $distance; }