NAME
Geo::libpostal - Perl bindings for libpostal
SYNOPSIS
use Geo::libpostal ':all';
# normalize an address
my @addresses = expand_address('120 E 96th St New York');
# parse addresses into their components
my %address = parse_address('The Book Club 100-106 Leonard St Shoreditch London EC2A 4RH, United Kingdom');
# %address contains:
# (
# 'road' => 'leonard st',
# 'postcode' => 'ec2a 4rh',
# 'house' => 'the book club',
# 'house_number' => '100-106',
# 'suburb' => 'shoreditch',
# 'country' => 'united kingdom',
# 'city' => 'london'
# );
FUNCTIONS
expand_address
use Geo::libpostal 'expand_address';
my @ny_addresses = expand_address('120 E 96th St New York');
my @fr_addresses = expand_address('Quatre vingt douze R. de l\'Église');
Takes an address string and returns a list of known variants. Useful for normalization. Dies on undef
and empty strings. Exported on request.
parse_address
use Geo::libpostal 'parse_address';
my %ny_address = parse_address('120 E 96th St New York');
my %fr_address = parse_address(
'Quatre vingt douze R. de l\'Église',
language => 'fr',
country => 'FR',
);
Takes an address string and parses it, returning a list of labels and values. Accepts two optional named parameters:
language
- 2 character language code per ISO 639-1country
- 2 character country code per ISO 3166-1 alpha-2
Will die
on undef
and empty addresses, odd numbers of options and unrecognized options. Exported on request.
WARNING
libpostal uses setup()
and teardown()
functions - you may see delays in start and end of your program due to this. Setup fires as soon as this module is imported. Teardown occurs in an END
block automatically.
EXTERNAL DEPENDENCIES
libpostal is required.
AUTHOR
© 2016 David Farrell
LICENSE
See LICENSE