my @array1 = ('a','b','c','d'); my @array2 = (1,2,3,4); my @array3 = ('x','y','z'); my @array4 = ('p','q','r','s','t','u'); my @array5 = ('l','m','n'); my @finalArray; looping(\@array1,\@array2,\@array3,\@array4,\@array5); sub looping { while (@_) { my $array = shift; my $length = scalar @{$array} - 1; for my $i (0 .. $length) { exists $finalArray[$i] ? ($finalArray[$i] = $finalArray[$i].${$array}[$i]) : ($finalArray[$i] = ${$array}[$i]); } } } print "$_\n" foreach(@finalArray);