# assumption: @words == @numbers use Data::Dumper; my @words = qw(I Am Cool); my @numbers = qw(1 2 3); my @loop_data = map { { WORD => $words[$_], NUMBER => $numbers[$_], } } 0..$#words; print Dumper \@loop_data;