NAME
Business::ES::CodigoPostal - Validación de códigos postales españoles y obtención de provincia
VERSION
version 0.01
SYNOPSIS
use Business::ES::CodigoPostal 'validate_cp';
# OO
$cp = Business::ES::CodigoPostal->new( codigo => '28001' );
$cp = Business::ES::CodigoPostal->new({ codigo => '28001' );
# function
$cp = validate_cp('18001');
$cp = validate_cp('18001', { strict => 0 }); # _normalize()
if ($cp->{valid}) {
print $cp->{provincia}; # Granada
} else {
print $cp->{error};
}
DESCRIPTION
Este módulo permite validar códigos postales de España y obtener su provincia asociada. El rango válido de códigos es de 01000 a 52999.
Por defecto devuelve código ISO 3166-2
NAME
Business::ES::CodigoPostal - Validación de códigos postales españoles y obtención de provincia
SUBROUTINES/METHODS
codigo
Devuelve el código postal almacenado en el objeto.
my $codigo = $cp->codigo;
error
Devuelve el mensaje de error si el código postal no es válido.
my $error = $cp->error;
print "Error: $error" if defined $error;
iso_3166_2
Devuelve el código ISO 3166-2 de la provincia.
my $iso = $cp->iso_3166_2;
strict
Controla el modo de validación, modo strict por defecto, no se normaliza la entrada.
$cp->strict(0); # Permitir normalización
my $is_strict = $cp->strict;
provincia
Devuelve el nombre de la provincia correspondiente al código postal.
my $provincia = $cp->provincia;
print "Provincia: $provincia" if $cp->is_valid;
valid
Indica si el código postal es válido (1) o no (0).
my $es_valido = $cp->valid;
_normalize
Limpia y agrupa el código postal, cuando se fija strict a 0
validate_cp
Función que valida un código postal y devuelve un hash con el resultado.
my $resultado = validate_cp('28001');
if ($resultado->{valid}) {
print "Código: " . $resultado->{codigo};
print "Provincia: " . $resultado->{provincia};
print "ISO 3166-2: " . $resultado->{iso_3166_2};
} else {
print "Error: " . $resultado->{error};
}
Retorna un hash con las claves: - valid
: 1 si es válido, 0 si no - codigo
: código postal - provincia
: nombre de la provincia (si es válido) - iso_3166_2
: código ISO 3166-2 de la provincia (si es válido) - error
: mensaje de error (si no es válido)
new
Crea un nuevo objeto de código postal.
my $cp = Business::ES::CodigoPostal->new();
my $cp = Business::ES::CodigoPostal->new(codigo => '28001');
my $cp = Business::ES::CodigoPostal->new({ codigo => '28001', strict => 0, iso_3166_2 => 0 });
Parámetros: - codigo
: Código postal a validar - strict
: Modo strict (Por defecto), a 0 para normalizar la entrada - iso_3166_2
: Incluir código ISO 3166-2 (Por defecto)
set_error
Fija el error como argumento el texto a guardar
set
Fija nuevo código postal
my $res = $cp->set('08001');
unless ($res) {
print "Error: " . $cp->error;
}
Retorna 1 si el código posta es válido o 0 si no.
is_valid
$cp->is_valid
Devuelve verdadero si el código postal es válido.
AUTHOR
AUTHOR
H <>
COPYRIGHT AND LICENSE
This software is copyright (c) 2025 by H.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.