for (@MainArray) { @$_ = grep { ! /[a-z]/ } @$_; } #### #!/usr/bin/env perl use strict; use warnings; use Data::Dumper; my @MainArray; # Original array populating code while () { chomp; push @MainArray, [ split // ]; } # New alternative to 'splice' code for (@MainArray) { @$_ = grep { ! /[a-z]/ } @$_; } print Dumper \@MainArray; __DATA__ Hello my name is Jack #### $ pm_file_chars_to_AoA_2.pl $VAR1 = [ [ 'H' ], [], [], [], [ 'J' ] ];