foreach my $v1 (@array1) { my $v2= shift @array2; print $v1, $v2; } #### # print all elements while( @array1 || @array2) { my $v1= shift @array1 || "empty"; # or whatever default value my $v2= shift @array2 || "empty"; print $v1, $v2; } #### # print elements up to the shortest array length while( @array1 && @array2) { my $v1= shift @array1; my $v2= shift @array2; print $v1, $v2; }