my @arr = ('TEXT1','TEXT11','TEXT13','TEXT2','TEXT3'); #### my @newArr = ('TEXT1','TEXT2','TEXT3','TEXT11','TEXT13'); #### my @arr1; foreach my $val (@arr) { $val =~ s/TEXT//gx; push @arr1, $val; } foreach my $val1 (sort {$a <=> $b} @arr1) { my $text = 'TEXT'.$val1; push @newArr, $text; }