NAME
Geo::Postcodes - Base class for the Geo::Postcodes::* modules
SYNOPSIS
This module should not be used directly from application programs, but from a country subclass; e.g.:
package Geo::Postcodes::U2;
use Geo::Postcodes 0.30;
use base qw(Geo::Postcodes);
use strict;
use warnings;
our $VERSION = '0.30';
And so on. See the documentation for making country subclasses for the gory details; perldoc Geo::Postcodes::Subclass or man Geo::Postcodes::Subclass.
ABSTRACT
Geo::Postcodes - Base class for the Geo::Postcodes::* modules. It is useless on its own.
PROCEDURES AND METHODS
These procedures and methods should, with a few exceptions, not be used directly, but from a country module. See the documentation for the indiviual country modules for usage details.
address, borough, county, location, owner, postcode, type, type_verbose
Methods for accessing the fields of a postcode object. The individual country modules can support as many of them as needed, and add new ones.
address_of, borough_of, county_of, location_of, owner_of, postcode_of, type_of, type_verbose_of
Procedures that returns the value of the corresponding field for the given postcode. They will return undef if the postcode does not exist, or the field is without value for the given postcode.
get_fields, is_field
get_fields() will return a list of all the fields supported by the module, and is_field($field) will return true (1) if the specified field is supported by the module.
legal, valid
Procedures that return true if the postcode is legal (syntactically), or valid (in actual use).
new
This will create a new postcode object.
selection, selection_loop
Procedures/methods for selecting several postcodes at once.
See the selection manual (perldoc Geo::Postcodes::Selection or man Geo::Postcodes::Selection) for usage details, and the tutorial (perldoc Geo::Postcodes::Tutorial or man Geo::Postcodes::Tutorial) for sample code.
verify_selectionlist, is_legal_selectionmode, is_legal_initial_selectionmode get_selectionmodes, get_initial_selectionmodes
Supporting procedures when using selection or selection_loop.
See the selection manual; perldoc Geo::Postcodes::Selection or man Geo::Postcodes::Selection for usage details.
get_postcodes
This will return an unsorted list of all the postcodes.
get_types
This will return a list of types. See the next section.
type2verbose
my $type_as_english_text = $Geo::Postcodes::type2verbose($type);
my $type_as_national_text = $Geo::Postcodes::U2:type2verbose($type);
This procedure gives an english description of the type. Use the child class directly for a description in the native language.
TYPE
This class defines the following types for the postal locations:
- BX
-
Post Office box
- ST
-
Street address
- SX
-
Service box (as a Post Office box, but the mail is delivered to the customer).
- IO
-
Individual owner (a company with its own postcode).
- STBX
-
Either a Street address (ST) or a Post Office box (BX)
- MU
-
Multiple usage (a mix of the other types)
- PP
-
Porto Paye receiver (mail where the reicever will pay the postage).
- PN
-
Place name
The child classes can use them all, or only a subset, but must not define their own additions. The child classes are responsible for adding descriptions in the native language, if appropriate.
DESCRIPTION
This is the base class for the Geo::Postcodes::* modules.
CAVEAT
This module uses inside out objects, see for instance http://www.stonehenge.com/merlyn/UnixReview/col63.html for a discussion of the concept.
SEE ALSO
See also the selection manual (perldoc Geo::Postcodes::Selection or man Geo::Postcodes::Selection) for usage details, the tutorial (perldoc Geo::Postcodes::Tutorial or man Geo::Postcodes::Tutorial) for sample code, and the ajax tutorial (perldoc Geo::Postcodes::Ajax or man Geo::Postcodes::Ajax) for information on using the modules in combination with ajax code in a html form to get the location updated automatically.
The latest version of this library should always be available on CPAN, but see also the library home page; http://bbop.org/perl/GeoPostcodes for additional information and sample usage. The child classes that can be found there have some sample programs.
COPYRIGHT AND LICENCE
Copyright (C) 2006 by Arne Sommer - perl@bbop.org
This library is free software; you can redistribute them and/or modify it under the same terms as Perl itself.