NAME

Genealogy::Wills - Lookup in a database of wills

VERSION

Version 0.10

DESCRIPTION

This module provides a convenient interface to search through a database of historical wills, primarily focused on the Kent Wills Transcript. It handles database connections, caching, and result formatting.

- Results are cached for 1 day by default - Database connections are lazy-loaded - Large result sets may consume significant memory

SYNOPSIS

# See https://freepages.rootsweb.com/~mrawson/genealogy/wills.html
use Genealogy::Wills;
my $wills = Genealogy::Wills->new();
# ...

SUBROUTINES/METHODS

new

Creates a Genealogy::Wills object.

Takes three optional arguments, which can be hash, hash-ref or key-value pairs.

Last (last name) is a mandatory parameter.

Return a list of hash references in list context, or a hash reference in scalar context.

Each record includes a formatted url field.

my $wills = Genealogy::Wills->new();

# Returns an array of hashrefs
my @smiths = $wills->search(last => 'Smith');       # You must at least define the last name to search for

print $smiths[0]->{'first'}, "\n";

FORMAL SPECIFICATION

[NAME, URL, DIRECTORY]

WillRecord == [
    first: NAME;
    last: NAME;
    url: URL;
    additional_fields: ℙ(NAME × seq CHAR)
]

WillsDatabase == [
    directory: DIRECTORY;
    cache_duration: ℕ;
    logger: LOGGER
]

SearchParams == [
    last: NAME;
    first: NAME;
    optional_params: ℙ(NAME × seq CHAR)
]

│ last ≠ ∅  -- last name cannot be empty
│ |last| > 0  -- last name must have positive length

search: WillsDatabase × SearchParams → ℙ WillRecord

∀ db: WillsDatabase; params: SearchParams •
    params.last ≠ ∅ ⇒
    search(db, params) = {r: WillRecord | r.last = params.last ∧ matches(r, params)}

∀ db: WillsDatabase; params: SearchParams •
    params.last = ∅ ⇒
    search(db, params) = ∅

AUTHOR

Nigel Horne, <njh at nigelhorne.com>

BUGS

SEE ALSO

The Kent Wills Transcript, https://freepages.rootsweb.com/~mrawson/genealogy/wills.html

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Genealogy::Wills

You can also look for information at:

LICENSE AND COPYRIGHT

Copyright 2023-2025 Nigel Horne.

This program is released under the following licence: GPL2