NAME
Geo::Postcodes::DK - Danish postcodes with associated information
SYNOPSIS
This module can be used object oriented, or as procedures. Take your pick.
OBJECTS
use Geo::Postcodes::DK;
my $postcode = '1171';
if (Geo::Postcodes::DK::valid($postcode)) # A valid postcode?
{
my $P = Geo::Postcodes::DK->new($postcode);
printf "Postcode '%s'.\n", $P->postcode();
printf "Postal location: '%s'.\n", $P->location();
printf "Borough: '%s'.\n", $P->borough();
printf "County: '%s'.\n", $P->county();
printf "Owner: '%s'.\n", $P->owner();
printf "Address: '%s'.\n", $P->address();
printf "Postcode type: '%s'.\n", $P->type();
printf "- in danish: '%s'.\n", $P->type_verbose();
printf "- in english: '%s'.\n", $P->Geo::Postcodes::type_verbose();
}
The test for a valid postcode can also be done on the object itself, as it will be undef when passed an illegal postcode (and thus no object at all.)
my $P = Geo::postcodes::DK->new($postcode);
if ($P) { ... }
A more compact solution:
if ($P = Geo::Postcodes::DK->new($postcode))
{
foreach my $method (Geo::Postcodes::DK::methods())
{
printf("%-20s %s\n", ucfirst($method), $P->$method())
}
}
PROCEDURES
use Geo::postcodes::DK;
my $postcode = "1171";
if (Geo::Postcodes::DK::valid($postcode))
{
printf "Postcode" '%s'.\n", $postcode;
printf "Postal location: '%s'.\n", location_of($postcode);
printf "Postcode type: '%s'.\n", type_of($postcode);
printf "Owner: '%s'.\n", owner_of($postcode);
printf "Address: '%s'.\n", address_of($postcode);
}
ABSTRACT
Geo::postcodes::DK - Perl extension for the mapping between danish (including Grønland and Færøerne) postcodes, postal location, address and address owner.
DESCRIPTION
Tired og entering the postal name all the time? This is not necessary, as it is uniquely defined from the postcode. Request the postcode only, and use this library to get the postal name.
EXPORT
None.
The module supports the following methods: 'postcode', 'location', 'address', 'owner', 'type', and -type_verbose'. This list can also be obtained with the call Geo::Postcodes::DK::methods()
.
DEPENDENCIES
This module is a subclass of Geo::Postcodes, which must be installed first.
PROCEDURES and METHODS
These functions can be used as methods or procedures.
is_method
my $boolean = Geo::postcodes::DK::is_method($method);
my $boolean = $postcode_object->is_method($method);
Does the specified method exist.
methods
my @methods = Geo::postcodes::DK::methods();
my @methods = $postcode_object->methods();
A list of methods supported by this class.
selection
See the Geo::Postcodes manual for a description of this powerfull feature.
PROCEDURES
Note that the xxx_of procedures return undef when passed an illegal argument. They are used internally by the object constructor (new).
legal
my $boolean = Geo::postcodes::DK::legal($postcode);
Do we have a legal postcode; a code that follows the syntax rules?
valid
my $boolean = Geo::postcodes::DK::valid($postcode);
Do we have a valid postcode; a code in actual use?
location_of
my $location = Geo::postcodes::DK::location_of($postcode);
The postal place associated with the specified postcode.
owner_of
my $owner = Geo::postcodes::DK::owner_of($postcode);
The owner (company) of the postcode, if any.
address_of
my $address = Geo::postcodes::DK::address_of($postcode);
The address (street) associated with the specified postcode.
type_of
my $type = Geo::postcodes::DK::type_of($postcode);
What kind of postcode is this, as a code.
type_verbose_of
my $danish_description = Geo::postcodes::DK::type_verbose_of($postcode);
my $english_description = Geo::postcodes::type_verbose_of($postcode);
A danish text describing the type. Use the base class for the english description.
See the 'TYPE' section for a description of the types.
type2verbose
Get the description of the specified type.
my $danish_description = Geo::Postcodes::DK::type2verbose($type);
my $english_description = Geo::Postcodes::type2verbose($type);
METHODS
new
my $P = Geo::postcodes::DK-E<gt>new($postcode);
Create a new postcode object. Internally this will call the xxx_of
procedures for the fields supported by this class.
The constructor will return undef when passed an invalid or illegal postcode. Do not try method calls on it, as it is not an object. See the description of the legal and valid procedures above.
postcode
my $postcode = $P->postcode();
The postcode, as given to the constructor (new).
location
my $location = $P->location();
The postal location associated with the specified postcode.
type
my $type = $P->type();
See the description of the procedure type_of above.
type_verbose
See the description of the procedure type_verbose_of above.
my $type_danish = $P->type_verbose();
my $type_english = $P->Geo::Postcodes::type_verbose();
Use this to get the description.
See the 'TYPE' section for a description of the types.
TYPE
This class supports the following types for the postal locatuons:
- BX
-
Postboks (Post Office box)
- ST
-
Gadeadresse (Street address)
- IO
-
Personlig eier (Individual owner)
- PP
-
Ufrankerede svarforsendelser (Porto Paye receiver)
CAVEAT
POSTCODES
Danish postcodes (including Grønland) are four digit numbers ("0000" to "9999"), while Færøerne uses three digits numbers ("000" to "999"). This means that "0010" and "010" are legal, while "10" is not.
Use legal to check for legal postcodes, and valid to check if the postcode is actually in use. Geo::postcodes::DK-
new($postcode)> will return undef if passed an illegal or invalid postcode.
An attempt to access the methods of a non-existent postcode object will result in a runtime error. This can be avoided by checking if the postal code is legal, before creating the object; valid($postcode)
returns true or false.
CHARACTER SET
The library was written using the ISO-8859-1 (iso-latin1) character set, and the special danish letters 'Æ', 'Ø' and 'Å' occur regularly in the postal places, kommune name and fylke name. Usage of other character sets may cause havoc. Unicode is not tested.
Note that the case insensitive search (in the 'selection' method/procedure) doesn't recognize an 'Æ' as an 'æ' (and so on). use locale
in the application program should fix this, if the current locale supports these characters.
SEE ALSO
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.
AUTHOR
Arne Sommer, <perl@bbop.org>
COPYRIGHT AND LICENSE
Copyright (C) 2006 by Arne Sommer
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 1675:
Non-ASCII character seen before =encoding in 'Grønland'. Assuming CP1252
- Around line 1844:
You forgot a '=back' before '=head1'