Changes for version 0.04 - 2026-05-06
- Enhancements
- resolve() now accepts place as the only required argument. The component (last comma-separated token) is extracted automatically when not supplied explicitly. Existing callers passing component explicitly are unaffected.
- Added normalise_place() stub. The method accepts a place string and will eventually insert missing commas before country and state names in raw uncleaned input. Currently returns the place string unchanged. Full POD, input/output schemas, and test coverage are in place ahead of implementation.
- Bug fixes
- Fixed trailing whitespace being included in the auto-extracted component. The extraction regex now uses a non-greedy quantifier ([^,]+?) so trailing spaces are trimmed cleanly before resolution begins.
- Fixed "Wide character in print" noise in edge_cases.t output caused by em dash characters in subtest names becoming decoded Unicode after adding "use utf8". Fixed by adding "use open qw(:std :utf8)" to bind stdout to UTF-8.
- Fixed "can't be decoded" failures in Params::Validate::Strict on Perl 5.18 for Unicode wide-character inputs (NBSP, EM SPACE, Arabic script) in edge_cases.t. Fixed by adding "use utf8" to the test file and SKIP guards for Perl < 5.20.
- Fixed NU (Nunavut) test failure on systems with Locale::CA 0.06, which predates the addition of NU. The integration and edge_cases tests now check Locale::CA->VERSION at runtime and skip gracefully on older installs.
- Bump minumum Locale::CA to fix https://www.cpantesters.org/cpan/report/ebaa0a06-37fc-11f1-acb9-eb813c3f718f
- Tests
- function.t: added white-box subtests for component auto-extraction (two-segment, three-segment, no-comma, trailing-whitespace, explicit-override, US state) and normalise_place() schema and return-value invariants.
- unit.t: added black-box subtests for the simple resolve() form and all normalise_place() API contract assertions. Plan count updated to 56.
- integration.t: added end-to-end subtests for the simple resolve() form with real genealogy place strings and the normalise_place() -> resolve() pipeline.
- Added six targeted regression subtests to edge_cases.t covering the above CPAN Testers failures, with report reference for the Unicode issue. These will catch recurrence if Perl or Params::Validate::Strict behaviour changes in future.
Documentation
Modules
Resolve a place string component to a canonical country name