in reply to Recovering Substrings to String with Gap

UPDATE: whoops a closer inspection reveals this doesnt match your output requirements, but i leave it here as it is a useful technique.

This is a situation where For some problems like this m//g in scalar context comes in useful:

sub append_n { my ( $str, $array ) = @_; my $nstring = "N" x length($str); pos($str)=0; # reset the search position on $str foreach my $sbstr ( @$array ) { $str=~/$sbstr/g and substr ($nstring, $-[0], length($sbstr)) = $sbstr } return $nstring; }

Outputs (when combined with a modified version of your code)

m//g: GATTACGNNNNGCGCTCGNNNAACGGCA Orig: GATTACGNNNNGCGCTCGNNNAACGGCA m//g: GATTACGNNNNNNNNNCGTGTAANNNNN Orig: GATTACGAGNNNNNNNCGTGTAANNNNN m//g: NNNTACGAGTNNNGCTCGTGNNNNNNNN Orig: NNNTACGAGTGGCGCTCGTGNNNNNNNN m//g: NNNNNNNNNNGGNNNNNNNNNNNNGGNN Orig: NNNNNNNNNNGGNNNNNNNNNNNNNNNN
---
demerphq