Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Geo::Postcodes::NO(3) User Contributed Perl DocumentationGeo::Postcodes::NO(3)

NAME
       Geo::Postcodes::NO - Norwegian postcodes	with associated	information

SYNOPSIS
       This module can be used object oriented,	or as procedures.  Take	your
       pick.

   AS OBJECTS
	use Geo::Postcodes::NO;

	my $postcode = '1178'; # My postcode.

	if (Geo::Postcodes::NO::valid($postcode)) # A valid postcode?
	{
	  my $P	= Geo::Postcodes::NO->new($postcode);

	  printf "Postcode	   '%s'.\n", $P->postcode();
	  printf "Postal location: '%s'.\n", $P->location();
	  printf "Borough number:  '%s'.\n", $P->borough_number();
	  printf "Borough:	   '%s'.\n", $P->borough();
	  printf "County:	   '%s'.\n", $P->county();
	  printf "Postcode type:   '%s'.\n", $P->type();
	  printf "- in norwegian:  '%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::NO->new($postcode);

	if ($P)	{ ... }

       A more compact solution:

	if ($P = Geo::Postcodes::NO->new($postcode))
	{
	  foreach my $field (Geo::Postcodes::NO::get_fields())
	  {
	    printf("%-20s %s\n", ucfirst($field), $P->$field())
	  }
	}

       This will not show the english description of the type.

   AS PROCEDURES
	use Geo::Postcodes::NO;

	my $postcode = "1178";

	if (Geo::Postcodes::NO::valid($postcode))
	{
	  printf "Postcode"	   '%s'.\n", $postcode;
	  printf "Postal location: '%s'.\n", location_of($postcode);
	  printf "Borough number:  '%s'.\n", borough_number_of($postcode);
	  printf "Borough:	   '%s'.\n", borough_of($postcode);
	  printf "County:	   '%s'.\n", county_of($postcode);
	  printf "Postcode type:   '%s'.\n", type_of($postcode);
	  printf "Postcode type:   '%s'.\n", type_of($postcode);
	  printf "- in norwegian:  '%s'.\n", type_of_verbose($postcode);
	  printf "- in english:	   '%s'.\n", Geo::Postcodes::type_of_verbose($postcode);
	}

ABSTRACT
       Geo::Postcodes::NO - Perl extension for the mapping between norwegian
       postal codes, postal locations, and the local administrative levels of
       boroughs	(kommuner) and counties	(fylker).

DESCRIPTION
       Tired of	entering the postal location 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.

       The library can also tell you in	which borough by name or number	and
       county by name the postcode is located. The borough number can be
       handy, as it is used when reporting wages and tax to the	Norwegian Tax
       Administration

       The module supports the following fields: 'postcode', 'location',
       'borough_number', 'borough', 'county', 'type', and 'type_verbose'. This
       list can	also be	obtained with the call
       "Geo::Postcodes::NO::get_fields()".

   EXPORT
       None.

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_field
	 my $boolean = Geo::postcodes::NO::is_field($field);
	 my $boolean = $postcode_object->is_field($field);

       Does the	specified field	exist.

   get_fields
	 my @fields = Geo::postcodes::NO::get_fields();
	 my @fields = $postcode_object->get_fields();

       A list of legal fields.

   selection
       This procedure/method makes it possible to select more than one
       postcode	at a time, based on arbitrary complex rules.

       See the selection documentation (perldoc	Geo::Postcodes::Selection or
       man Geo::Postcodes::Selection) for a full description, and the tutorial
       (perldoc	Geo::Postcodes::Tutorial or man	Geo::Postcodes::Tutorial) for
       sample code.

   selection_loop
       As above.

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::NO::legal($postcode);

       Do we have a legal postcode; a code that	follows	the syntax rules?

   valid
	 my $boolean = Geo::Postcodes::NO::valid($postcode);

       Do we have a valid postcode; a code in actual use?

   get_postcodes
       This will return	an unsorted list of all	the norwegian postcodes.

   verify_selectionlist
       This will check the list	of arguments for correctness, and should be
       used before calling 'selection'.	The procedure returns a	modified
       version of the arguments	on success, and	diagnostic messages on
       failure.

	 my($status, @modified)	= Geo::Postcodes::NO::verify_selectionlist(@args);

	 if ($status)
	 {
	   my @result =	Geo::Postcodes::NO::selection(@modified);
	 }
	 else
	 {
	   print "Diagnostic messages:\n";
	   map { print " - $_\n" } @modified;
	 }

   postcode_of
	 $postcode = Geo::Postcodes::NO::postcode_of($postcode);

       Used internally by 'selection', but otherwise not very useful.

   location_of
	 my $loaction =	Geo::Postcodes::NO::location_of($postcode);

       The postal location associated with the specified postcode.

   borough_number_of
	 my $boroug_number = Geo::Postcodes::NO::borough_number_of($postcode);

       The number of the borough (kommune) where the postcode is located.

   borough_number2borough
	my $borough = Geo::Postcodes::NO::borough_number2borough($borough);

       The name	of the borough (kommune) with the specified borough number.

   borough_of
	my $borough = Geo::Postcodes::NO::borough_of($postcode);

       The name	of the borough (kommune) where the postcode is located.

   county_of
	my $county = Geo::Postcodes::NO::county_of($county_number);

       The name	of the county (fylke) where the	postcode is located.

   borough_number2county
	my $county = Geo::Postcodes::NO::borough_number2county($borough_number);

       The name	of the county (fylke) where the	specified borough number
       (kommune	nummer)	is located.

   type_of
	 my $type = Geo::Postcodes::NO::type_of($postcode);

   type_verbose_of
	my $danish_description	= Geo::postcodes::NO::type_verbose_of($postcode);
	my $english_description	= Geo::postcodes::type_verbose_of($postcode);

       A norwegian 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 $norwegian_description = Geo::Postcodes::NO::type2verbose($type);
	 my $english_description   = Geo::Postcodes::type2verbose($type);

METHODS
   new
       "my $P =	Geo::Postcodes::NO->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.

   borough_number
	my $borough_number = $P->borough_number();

       The number of the borough (kommune) where the postcode is located.
       This is an official norwegian identifier.

   borough
	my $borough = $P->borough();

       The name	of the borough (kommune) where the postcode is located.

   county
	 my $county = $P->county();

       The name	of the county (fylke) where the	postcode is located.

   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_norwegian = $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  Postbokser (Post Office box)

       ST  Gateadresser	(Street	address)

       SX  Serviceboks (Service	box )

       IO  Kunde med eget postnummer (Individual owner)

       STBX
	   BAYde gateadresser og postbokser (Either a Street address or	a Post
	   Office box)

       MU  Flere bruksomrAYder (felles)	(Multiple usage)

       Se Geo::Postcodes for furter descriptions.

CAVEAT
   POSTCODES
       The norwegain postcodes are four	digit numbers, in the interval "0000"
       to "9999" (and this means that "0010" is	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::NO->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.

   LEGAL BOROUGH NUMBERS
       Borough (Kommune) numbers are also four digit numbers (not to be
       confused	with the postcodes), in	the interval "0101" to "2399". The two
       first digits identifies the county (fylke).

   CHARACTER SET
       The library was written using the ISO-8859-1 (iso-latin1) character
       set, and	the special norwegian letters 'A', 'A' and 'A' occur regularly
       in the postal locations and borough and county names. 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 'A' as an	'A|' (and so on). "use
       locale" in the application program should fix this, if the current
       locale supports these characters.

       Note that all names are given in	UPPER CASE. This is courtesy of	the
       norwegian postal	service.

SEE ALSO
       See also	the sample programs in the "eg/"-directory of the
       distribution, the tutorial ("perldoc Geo::Postcodes::Tutorial" or "man
       Geo::Postcodes::Tutorial") and the selection manual (perldoc
       Geo::Postcodes::Selection or man	Geo::Postcodes::Selection) for usage
       details.

       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.

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.

POD ERRORS
       Hey! The	above document had some	coding errors, which are explained
       below:

       Around line 5601:
	   Non-ASCII character seen before =encoding in	'BAYde'. Assuming
	   CP1252

perl v5.32.0			  2006-09-24		 Geo::Postcodes::NO(3)

NAME | SYNOPSIS | ABSTRACT | DESCRIPTION | DEPENDENCIES | PROCEDURES and METHODS | PROCEDURES | METHODS | TYPE | CAVEAT | SEE ALSO | COPYRIGHT AND LICENCE | POD ERRORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Geo::Postcodes::NO&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help