Só um parênteses: eu usaria o String::Approx[1] ou o re::engine::TRE[2] no lugar do String::Trigram[3], que é extremamente veloz porém voraz no quesito de RAM. Esses 3 módulos seriam apropriados para fuzzy match de uma string em lista de strings.<br clear="all">

Já o String::Similarity[4] é muito bom para comparar 2 strings, mas não é a coisa mais eficiente para aplicar a listas.<br>Frequentemente uso o Text::Fingerprint[5] como "versão light" do Text::Soundex[6] (com elementos de String::Trigram :P).<div>

Recomendo o artigo do Blabos[7] e de um computeiro russo[8] (outro russo) a todos que trabalharem com strings imprecisas :)</div><div><br></div><div>[1] <a href="https://metacpan.org/module/String::Approx">https://metacpan.org/module/String::Approx</a></div>

<div>[2] <a href="https://github.com/avar/re-engine-tre">https://github.com/avar/re-engine-tre</a></div><div>[3] <a href="https://metacpan.org/module/String::Trigram">https://metacpan.org/module/String::Trigram</a></div>
<div>
[4] <a href="https://metacpan.org/module/String::Similarity">https://metacpan.org/module/String::Similarity</a></div><div>[5] <a href="https://metacpan.org/module/Text::Fingerprint">https://metacpan.org/module/Text::Fingerprint</a></div>

<div>[6] <a href="https://metacpan.org/module/Text::Soundex">https://metacpan.org/module/Text::Soundex</a></div><div>[7] <a href="http://blog.blabos.org/2008/12/faxina-depois-da-festa/">http://blog.blabos.org/2008/12/faxina-depois-da-festa/</a></div>

<div>[8] <a href="http://ntz-develop.blogspot.com.br/2011/03/fuzzy-string-search.html">http://ntz-develop.blogspot.com.br/2011/03/fuzzy-string-search.html</a></div><div><div><br>ABS()<br><br>
<br><br><div class="gmail_quote">2012/7/2  <span dir="ltr"><<a href="mailto:ulisses@ibiz.com.br" target="_blank">ulisses@ibiz.com.br</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr">
<div dir="ltr">
<div style="font-size:12pt;font-family:'Calibri'">
<div>usamos por aqui</div>
<div> </div>
<div>use Text::DoubleMetaphone qw( double_metaphone ); # casamento 
fonetico</div>
<div> </div>
<div>use String::Approx 'adist';</div>
<div style="font-size:small;font-style:normal;text-decoration:none;font-family:'Calibri';display:inline;font-weight:normal">
<div style="FONT:10pt tahoma">
<div><font size="3" face="Calibri"></font> </div>
<div style="BACKGROUND:#f5f5f5">
<div><b>From:</b> <a title="creaktive@gmail.com" href="mailto:creaktive@gmail.com" target="_blank">Stanislaw Pusep</a> </div>
<div><b>Sent:</b> Monday, July 02, 2012 9:24 AM</div>
<div><b>To:</b> <a title="rio-pm@pm.org" href="mailto:rio-pm@pm.org" target="_blank">Perl Mongers 
Rio de Janeiro</a> </div>
<div><b>Cc:</b> <a title="saopaulo-pm@mail.pm.org" href="mailto:saopaulo-pm@mail.pm.org" target="_blank">saopaulo-pm@mail.pm.org</a> </div>
<div><b>Subject:</b> Re: [Rio-pm] :engine::TRE</div></div></div>
<div> </div></div>
<div style="font-size:small;font-style:normal;text-decoration:none;font-family:'Calibri';display:inline;font-weight:normal"><div><div class="h5">Bom 
dia Thiago! 
<div>Obrigado pela dica, não conhecia o String::Approx. Pelo meu rápido RTFS, 
usa o mesmo algoritmo que o re::engine::TRE (<a href="https://en.wikipedia.org/wiki/Bitap" target="_blank">https://en.wikipedia.org/wiki/Bitap</a>).</div>
<div>Também fiz a coisa mais óbvia, que devia ter feito antes de mandar o email 
para a lista: olhei no CPAN Testers, e percebi que o módulo em questão só 
funcionava até Perl v5.10. Entrei em contato com o autor, e ele confirmou que as 
"entranhas" do Perl tornaram-se incompatíveis a partir do v5.12.</div>
<div>Verei o que faço a respeito; o módulo me pareceu deveras útil.<br clear="all"><br>ABS()<br><br><br><br>
<div class="gmail_quote">2012/6/29 Thiago Glauco <span dir="ltr"><<a href="mailto:thiagoglauco@ticursos.net" target="_blank">thiagoglauco@ticursos.net</a>></span><br>
<blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PADDING-LEFT:1ex" class="gmail_quote">Eu uso<br>  use String::Approx 'amatch';<br><br>  
  print if amatch("foobar");<br><br>  my @matches = amatch("xyzzy", 
  @inputs);<br><br>  my @catches = amatch("plugh", ['2'], 
  @inputs);<br><br><br>Em Qui, 2012-06-28 às 18:20 -0300, Stanislaw Pusep 
  escreveu:<br>
  <div>><br>> Um dos exemplos de aplicação prática dela é o 
  utilitário<br>> 'agrep' (approximate 
  grep).<br><br></div>_______________________________________________<br>Rio-pm 
  mailing list<br><a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div>


<div> </div></div>
</div></div><p>
</p><hr><div class="im">
_______________________________________________<br>Rio-pm mailing 
list<br><a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a></div><p></p></div></div></div>

</div>
<br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br></div></div>