#!/usr/bin/perl use strict; use warnings; use diagnostics; use Data::Dumper; $Data::Dumper::Sortkeys = 1; my @array = qw( Tabelle1.Spalte1 Tabelle1.Spalte2 Tabelle2.Spalte3 Tabelle3.Spalte3 Tabelle3.Spalte2 Tabelle1.Spalte3 Tabelle2.Spalte1 Tabelle2.Spalte2 Tabelle1.Spalte4 Tabelle3.Spalte1 ); print Dumper \@array; my %hoa = (); # # Array -> HoA # for (@array) { my ($tab, $spalt) = split /\./; if (exists $hoa{$tab}) { push @{$hoa{$tab}}, $spalt; } else { $hoa{$tab} = [ $spalt ]; } } print Dumper \%hoa; # # Sortieren der Arrays: # for (keys %hoa) { $hoa{$_} = [ sort @{$hoa{$_}} ]; } print Dumper \%hoa;