[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