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.