Welcome to String::Approx 3.0. This release is a major update from String Approx 2, of which 2.7 was the last release. The most important change was that the underlying algorithm was changed completely. Instead of doing everything in Perl using regular expressions we now do the matching in C using the so-called Manber-Wu shift-add algorithm. You have met this algorithm if you have used the agrep utility or the Glimpse indexing system. More details in the file README.apse. This change brings both good and bad news. Good news first. * We are now 2-3 times faster than String::Approx version 2. * There should be no limit on the length of the pattern. Extremely long patterns haven't been tested much, though, so please do not assume overmuch. The used algorithm is actually _independent_ of the length of the pattern: it's O(kn) where k is the number of errors and n the length of the text. Then the bad news: * You do need a C compiler. If your system does not have a C compiler you should either get one or find a friendly soul to compile this extension for you. * The semantics of asubstitute() have changed. The match is now always stingy; that is, as short as possible. Previously if you matched for "word" with edit distance of two, "cork" and "wool" both would have matched -- and they still do. But: the matching parts will be "or" and "wo" and nothing more. There's still the stingy option but that's rather pointless now as far as shortening the match goes: it is now useful only for sligthly speeding up matching. This change messes up asubstitute() rather badly, I'm very sorry about this. I will try to think of something better in future releases. * aregex() is gone not to return because we no more use regular expressions. * The 'compat1' option to be backward compatible with String::Approx release 1 is no more supported. Perl 5.004_04 required (but I recommend 5.005_02). Installation is as horribly complicated as before: perl Makefile.PL make make test make install Let me (jhi@iki.fi) know of any trouble. Also let me know of cool uses you put String::Approx into. That's it. Enjoy.