splice @$fields, $i, 0; #### >perl -wMstrict -le "my $ar = [ qw(a b c d) ]; ;; my $i = 0; for my $e (@$ar) { $e = uc $e; splice @$ar, $i, 0; ++$i; } ;; use Data::Dumper; print Dumper $ar; " $VAR1 = [ 'A', 'B', 'C', 'D' ];