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::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:

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