Changes for version 0.46 - 2026-10-15

  • Enhancements
    • Added valid_location(), which answers whether a string is a location at all: the rule geocode() applies before it touches a backend, made public. A caller working down a spreadsheet column can skip a row whose value is a bare number, or empty, instead of catching the croak that would otherwise end the run. The regex it replaces was private to this module, so no caller could pre-filter with the module's own rule
    • geocode() takes on_error => 'croak' (the default, and the behaviour every existing caller already has) or 'undef'. 'undef' returns undef - an empty list in list context - for the two documented input errors, invalid_location and invalid_scantext, and for nothing else: a backend that throws still throws, because nothing is wrapped in an eval, and a call with neither a location nor a scantext is still a usage croak. An on_error with any other value is refused by name rather than ignored, so a caller who misspells it does not ship a batch job that dies on its first bad row

Documentation

Modules

Geocoding using free, locally-hosted databases
Site-independent configuration file for the Versatile Web Framework
driver for http://download.geonames.org/export/dump/admin1CodesASCII.txt
driver for http://download.geonames.org/export/dump/admin2Codes.txt
driver for https://www.maxmind.com/en/free-world-cities-database
driver for http://results.openaddresses.io/
interface to data from http://results.openaddresses.io/
Driver for /tmp/vwf.log
Geocode using user-curated local data
Provides a geocoding functionality using the MaxMind and GeoNames databases
The provenance keys that every Geo::Coder::Free result carries
Random subroutines for Geo::Coder::Free
The rule that decides whether a string could be a location

Provides

in lib/Geo/Coder/Free/Allow.pm
in lib/Geo/Coder/Free/Display.pm
in lib/Geo/Coder/Free/Display/index.pm
in lib/Geo/Coder/Free/Display/meta_data.pm
in lib/Geo/Coder/Free/Display/query.pm