Eircode - Validation and utilities for Eircodes / Irish postcodes
version 0.2.1
use Eircode qw< check_eircode >; my $data = "not an eircode"; if( ! check_eircode($data) ){ die 'Invalid'; }
A module for checking Irish postcodes / Eircodes / éirchód.
check_eircode("A65 B2CD") or die;
Checks it's first argument to see if it looks like a valid Eircode. If it does it returns a truthy value, if not it returns a falsey value.
A second argument, a hashref, can be provided to tweak the validation, these are all key => bool options.
strict => 1, # enforces upper case and the space mutually exclusive with lax lax => 1, # allows any valid sequence irriguadless of spaces. mutually # exclusive with strict. space_optional => 1, # will accept A65B2CD but not A65 B2 CD. Essentially not # fussed about the space that should be there, but will # not tolerate completely random spacing like lax will.
The default behaviour is to enforce the space but not case sensitivity.
So:
check_eircode("a65 b2cd"); # pass check_eircode("a65b2cd", {lax => 1}); # pass check_eircode("a65b2cd"); # fail check_eircode("a65b2cd", {strict => 1}); # fail check_eircode("a65 b2cd", {strict => 1}); # fail check_eircode("A65 B2CD", {strict => 1}); # pass check_eircode("a65b2cd", {space_optional => 1}); # pass check_eircode("a65 b2cd", {space_optional => 1}); # pass check_eircode("a65b 2cd", {space_optional => 1}); # fail
say normalise_eircode("a65b2cd"); # Outputs A65 B2CD
Takes a loosely formatted eircode and formats it in upper case with the correct spacing. If the input doesn't look like a valid eircode will die with "invalid eircode".
my($routing_key, $uid) = split_eircode("a65 b2cd"); my($routing_key, $uid) = split_eircode("a65b2cd");
Take an eircode and gives you the two constitieent parts, the routing key and the uid.
The validation doesn't check that the eircode is an existing code, merely that the formatting is correct, doesn't contain invalid characters etc. If you want to ensure the Eircode is a real existing code that goes well beyond the scope of what this module is trying to achieve. However you probably still want to run this kind of check before you go dialing out to an API to do that kind of check.
https://en.wikipedia.org/wiki/Postal_addresses_in_the_Republic_of_Ireland https://www.eircode.ie/
Time to write this was provided by Print Evolved ltd, see http://www.printevolved.co.uk for all your print / print technology needs.
Joe Higton <draxil@gmail.com>
This software is copyright (c) 2020 by Joe Higton <draxil@gmail.com>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Eircode, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Eircode
CPAN shell
perl -MCPAN -e shell install Eircode
For more information on module installation, please visit the detailed CPAN module installation guide.