use strict; use warnings; use List::MoreUtils qw(natatime); my $str="AJKDHAKAESRADADKLASRRASDASDKASEKA"; my @ar = split '(?<=[KR](?!P))', $str; #to split where i ever i see a K or R. print "ar: @ar\n"; my @new; my $it = natatime 2, @ar; while (my @vals = $it->()) { push @new, (join '', @vals); } print "new: @new\n"; #### ar: AJK DHAK AESR ADADK LASR R ASDASDK ASEK A new: AJKDHAK AESRADADK LASRR ASDASDKASEK A