use Data::Dumper; my $array_from_json = [["ZG NR","Ortsangabe", "Stoppunkt","Rücklaufende minuten"],["ZG NR","Ortsangabe", "Stoppunkt","Rücklaufende Minuten"]]; $array_from_json = [["001","Berlin", "Jüterbog","120"],["002","Dresden", "Riesa","95"]]; my @keys = qw(ZugNr Ortsangabe Stoppunkt Returntime ); my %Fahrplan = (); foreach my $zug( 1 .. scalar @$array_from_json){ my %hh = (); # Helper Hash @hh{@keys} = @{$array_from_json->[$zug-1]}; $Fahrplan{$zug} = \%hh; } print Dumper \%Fahrplan; # ausgabe $VAR1 = { '1' => { 'Returntime' => '120', 'ZugNr' => '001', 'Stoppunkt' => 'Jüterbog', 'Ortsangabe' => 'Berlin' }, '2' => { 'Returntime' => '95', 'ZugNr' => '002', 'Stoppunkt' => 'Riesa', 'Ortsangabe' => 'Dresden' } };