#!/usr/bin/perl use strict; use warnings; use Data::Dumper; $Data::Dumper::Sortkeys = 1; my @Array1 = ( 'Nr;Name;Vorname;Strasse;Ort', '1;Bauer;Otto;Heuweg 1;Bonn', '2;Mueller;Mark;Holzweg 2;Berlin', '3;Schreiber;Stefan;Hochweg 3;Muenchen', ); print "Array = ", Dumper \@Array1; my @Array2; # hier kommt spter alles rein # Ueberschrift entfernen und speichern: my @Title = split /;/, shift @Array1; my $N = @Title; print "Title = ", Dumper \@Title; print "Array = ", Dumper \@Array1; for (@Array1) { # am semikolon auftrennen my @line = split /;/; die "Falsche Anzahl Elemente" unless $N == @line; # als anonymen Hash zuweisen my %hash; for my $i (0 .. $N-1) { $hash{$Title[$i]} = $line[$i]; # wir hoffen, dass alle Spalten unterschiedliche Titel haben... } push @Array2, { %hash }; } print "Array2 = ", Dumper \@Array2; # auf einzelne Werte zugreifen print $Array2[1]->{'Vorname'} . ' ' . $Array2[1]->{'Name'} . " \n"; print $Array2[2]->{$Title[2]} . ' ' . $Array2[2]->{$Title[1]} . " \n";