=encoding utf8 =head1 NAME Geo::libpostal - Perl bindings for libpostal =head1 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' # ); =head1 FUNCTIONS =head2 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 C and empty strings. Exported on request. =head2 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: =over 4 =item * C - 2 character language code per L =item * C - 2 character country code per L =back Will C on C and empty addresses, odd numbers of options and unrecognized options. Exported on request. =head1 WARNING libpostal uses C and C 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 C block automatically. =head1 EXTERNAL DEPENDENCIES L is required. =head1 AUTHOR E 2016 David Farrell =head1 LICENSE See LICENSE =cut