[Cascavel-pm] Parse de Endereço (Was: Re: Separando campos)

Luis Motta Campos luismottacampos em yahoo.co.uk
Terça Março 20 09:17:52 PDT 2007


On Mar 20, 2007, at 4:23 PM, Daniel Ruoso wrote:
> bem... aí vai o código que eu fiz na altura:
>
> <code>
> sub extrair_endereco {
[SNIP]
>         if ($endereco =~ /^rua\,*\s*(.+)$/i) {
[SNIP]
>         } elsif ($endereco =~ /^av\.*\,*\s*(.+)$/i) {
[SNIP]
>         } elsif ($endereco =~ /^trav\.*\,*\s*(.+)$/i) {
[SNIP]
>         }
>
>         if ($endereco =~ /^([^,]+)\s*,\s*(.+)$/i) {
[SNIP]
>         } elsif ($endereco =~ /^(.+)\s*N\.*º\s*(.+)$/i) {
[SNIP]
>         } elsif ($endereco =~ /^(.\D+)\s+(\d+?.+)$/i) {
[SNIP]
>         }
>
>         if ($endereco =~ /^(\S+)\s+(.+)$/) {
[SNIP]
>         } else {
[SNIP]
>         }
[SNIP]
> }
> </code>
>
> Alguém acha a idéia interessante?

   Eu acho que seria muito interessante transformar este monte de IFs  
num dispatch table antes de tentar fazer qualquer coisa... depois,  
lembrar que, exceto em casos excepcionais (como uma migração, ou um  
ETL que começa com dados muito ruins) isso não é usual e eu realmente  
não acredito que alguém vai perder o tempo de saber se o teu módulo  
pode ajudar. Eu simplesmente escreveria um monte de código  
descartável e tirava logo o monstrinho da minha frente...

   De qualquer forma, minha admiração pela sua coragem em exibir  
código como este ;-)
   Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}




Mais detalhes sobre a lista de discussão Cascavel-pm