in reply to inserting a new line after some elemnts in an array

It's not clear whether "insert a new line after every even element" means insert a newline character at the end of each even element, or insert a new element (a newline) after each previously even element. While you probably mean the former, a solution to the latter is:
for my $i (reverse(0..$#array/2)) { splice(@array, 2*$i+1, 0, "\n"); }