#!/perl -w use strict; my $string = "abcdefghijklmnopqrstuvwxyz"; my @sub_strings = ('cdef', 'efghij', 'klmno', 'mnopqrst'); my $string_index = 0; my $last_end_point = 0; foreach my $sub_string (@sub_strings) { my $string_index = index($string, $sub_string, $string_index); die ("Couldn't find string") if $string_index == -1; my $overlap = $last_end_point - $string_index; if ($overlap > 0) { substr($sub_string, 0, $overlap) = '-'x$overlap; } $last_end_point = $string_index + (length($sub_string)); } print join(',', @sub_strings);