The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Geo::UK::Postcode::Regex::Simple - Simplified interface to Geo::UK::Postcode::Regex

SYNOPSIS

    use Geo::UK::Postcode::Regex::Simple ':all';

    # Set behaviour of regular expression (defaults below)
    local $Geo::UK::Postcode::Regex::Simple::MODE             = 'strict';
    local $Geo::UK::Postcode::Regex::Simple::PARTIAL          = 0;
    local $Geo::UK::Postcode::Regex::Simple::CAPTURES         = 1;
    local $Geo::UK::Postcode::Regex::Simple::ANCHORED         = 1;
    local $Geo::UK::Postcode::Regex::Simple::CASE_INSENSITIVE = 0;

    # Regular expression to match postcodes
    my $re = postcode_re;
    my ( $area, $district, $sector, $unit ) = "AB10 1AA" =~ $re;

    # Get hashref of data parsed from postcode
    my $parsed = parse_pc "AB10 1AA";

    # Extract list of postcodes from text string
    my @extracted = extract_pc $text;

    # Check if string is a correct postcode 
    if ( validate_pc $string ) {
        ...
    }

Alternate global configuration:

    use Geo::UK::Postcode::Regex::Simple    #
        -strict                             # or -lax, -valid
        -full                               # or -partial
        -anchored                           # or -unanchored
        -captures                           # or -nocaptures
        -case-sensitive                     # or -case-insensitive
        ;

DESCRIPTION

Alternative interface to Geo::UK::Postcode::Regex.

CONFIGURATION

MODE

Sets the regular expressions used to be in one of the following modes:

lax

Matches anything that resembles a postcode.

strict (default)

Matches only if postcode contains valid characters in the correct positions.

valid

Matches only if the postcode contains valid characters and the outcode exists.

PARTIAL (default = false )

If true, regular expression returned by postcode_re will match partial postcodes, at district (outcode) or sector level, e.g. "AB10" or "AB10 1".

ANCHORED (default = true )

Puts anchors (^ and $) around the regular expression returned by postcode_re.

CAPTURES (default = true )

Puts capture groups into the regular expression returned by postcode_re. The matches returned upon a successful match are: area, district, sector and unit.

CASE_INSENSITIVE (default = false)

If false, only parses/matches/extracts postcodes that contain only upper case characters.

FUNCTIONS

postcode_re

    my $re = postcode_re;

Returns a regular expression which will match UK Postcodes. See CONFIGURATION for details.

parse_pc

    my $parsed = parse_pc $pc;

Returns a hashref of data extracted from the postcode. See parse in Geo::UK::Postcode::Regex for more details.

extract_pc

    my @extracted = extract_pc $test;

Returns a list of postcodes extracted from a text string. See extract in Geo::UK::Postcode::Regex for more details.

validate_pc

    if ( validate_pc $pc ) {
        ...
    }

Boolean test for if a string is a (full) postcode or not, according to current MODE (see CONFIGURATION).

AUTHOR

Michael Jemmeson <mjemmeson@cpan.org>

COPYRIGHT

Copyright 2014- Michael Jemmeson

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.