Geo::Coder::OSM provides an interface to the OpenStreet Nominatim geocoding service.