indapa has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I am searching for indexes of substrings in larger strings. However some of my substrings contain one character insertions/deletions/substitutions. Here is some sample data:
#substring(s) to search for: $substr = "AATGCTCCCCAATGAGGCA"; $substr2 = "TT##CACAAGGAACTTTTTT"; #Search for it in this string: $str = "CTTGAGTTATTAGCTGTTTGCCCCTGGGCAAGTTGTCTCACCTCTCCGTGTTTGTTTCCTCA +CCTATTGGACCAGGCCTATGGTTTTCAAACTGTGTTCCCTGGTGCTCTGAGACTTAGGGAAGGGGAACG +CCCACACTGGCAAGGCTAACACAAGCCGCCATATACCCACCCCACTTCACCCACAGCACCCCCCTTTCT +GTGTCTCATATACTGCGGGCCTATGCGA"; # the second substring is straightforward $pos = index( $string, $substr);
I would like the 2nd substr to match as well, despit having the # insertions.

Perl Cookbook recipe 6.13 discusses this, and suggests using the String:Approx module. However this module returns a list of matches and in scalar context returns the number of sucessful matches.

In my case I need approximate index matching. So the index function will return an answer despite finding an approximate match. Is there such a thing? Or are there other solutions that I am overlooking? Thank you for your help.

Replies are listed 'Best First'.
(tye)Re: Approximate index
by tye (Sage) on Mar 28, 2001 at 05:39 UTC

    String::Approx includes an aindex routine.

            - tye (but my friends call me "Tye")