my $after = 0; foreach my $sbstr ( @$array ) { my $pos = index $str, $sbstr, $after; substr ($nstring, $pos, length ($sbstr)) = $sbstr; $after=$pos+length($sbstr); }