use strict; my @records; my ($spalte1, $spalte2, $spalte3, $spalte4); my $dossier= "/home/blabla/datei.txt"; open(ENTREE,"$dossier")or die "can't open this File $!"; while(){ chomp; if ($. == 1) { ($spalte1, $spalte2, $spalte3, $spalte4) = split(/\s+/, $_); } else { my(@zahlen) = split(/\s+/, $_); push(@records, { $spalte1 => $zahlen[0], $spalte2 => $zahlen[1], $spalte3 => $zahlen[2], $spalte4 => $zahlen[3] }); } } close ENTREE; use Data::Dumper; print Dumper(\@records);