Add new comment
CEP-2-City
Módulo Perl que obtém o nome do município (do Brasil) a partir de um CEP dado. Exemplo:
#!/usr/bin/perl
use CEP;
# inicializa
my $cep = new CEP;
# $city será referência para array com estado/cidade
my $city = $cep->city ('12.437-660'); # processa somente os dígitos numéricos (0-9)
if ($city) {
# $str será uma string no formato Cidade/ESTADO
my $str = CEP::city_string ($city);
# filtra os acentos e imprime em caixa alta
printf "esse CEP pertence a [%s]\n", uc CEP::normalize ($str);
} else {
print "CEP não encontrado\n";
}
exit;
Conforme pode ser observado no exemplo dado acima, este é um módulo
orientado a objeto. A instância do objeto CEP é criada com new
CEP. Durante a inicialização, é construído um
array com a lista ordenada das faixas de CEPs (isso pode demorar, portanto é
uma boa idéia criar uma única instância e reaproveitá-la indefinidamente). O
método que realiza a busca binária pelo CEP e retorna o nome do município é
city(). O seu único parâmetro é o número CEP propriamente dito.
Somente os dígitos numéricos serão considerados. city() retorna
uma referência para array que contém o nome do estado e o nome da cidade,
nessa ordem. Inclui também uma subrotina city_string() que
recebe como parâmetro o array retornado pelo city() e retorna
uma string no formato "Nome da cidade/ESTADO". E, finalmente, quando
os acentos são desnecessários, pode-se filtrá-los com a função
normalize(), que recebe uma string com acentos e a retorna sem
acentos 
P.S. - cuidado com os line-endings do arquivo
CEP.pm! Se o segmento __DATA__ for salvo com CRLF, o módulo
apresentará comportamento estranho em sistemas UN*X!
P.P.S. - Este projeto tem agora um sucessor (que consegue obter informação sobre Rua/Bairro e até mesmo DDD regional)! Confira!
|
stas » January 3, 2007 » 17:55
attachment » add new comment » 15540 reads
|




