use Data::Dumper; my @bigarray = ( [ "123*jeff", "tortoise", "qwerty" ], [ "456*john", "parrot", "azerty" ], [ "789*jane", "budgie", "abcdef" ], ); print Dumper \@bigarray; # before ... print Dumper \@bigarray; # after #### splice @$_, 0, 1, split /\*/, $_->[0] for @bigarray; #### foreach my $arr ( @bigarray ){ my $item = shift @$arr; unshift @$arr, split /\*/, $item; }