NAME
    Gedcom - a module to manipulate Gedcom genealogy files

    Version 1.15 - 3rd May 2005

DESCRIPTION
    Copyright 1998-2005, Paul Johnson (pjcj@cpan.org)

    This software is free. It is licensed under the same terms as Perl
    itself.

    The latest version of this software should be available from my
    homepage: http://www.pjcj.net

    This module provides for manipulation of Gedcom files. Gedcom is a
    format for storing genealogical information designed by The Church of
    Jesus Christ of Latter-Day Saints (http://www.lds.org). Information
    about Gedcom is available as a zip file at
    ftp://gedcom.org/pub/genealogy/gedcom/gedcom55.zip. Unfortunately, this
    is only usable if you can access a PC running Windows of some
    description. Part of the reason I wrote this module is because I don't
    do that. Well, I didn't. I can now although I prefer not to...

    Requirements:

      Perl 5.005 or later
      ActivePerl5 Build Number 520 or later has been reported to work

    Optional Modules:

      Date::Manip.pm       to work with dates
      Text::Soundex.pm     to use soundex
      Parse::RecDescent.pm to use lines2perl
      Roman.pm             to use the LifeLines function roman from lines2perl

    The Gedcom format is specified in a grammar file (gedcom-5.5.grammar).
    Gedcom.pm parses the grammar which is then used to validate and allow
    manipulation of the Gedcom file. I have only used Gedcom.pm with version
    5.5 of the Gedcom grammar, which I had to modify slightly to correct a
    few errors. The advantage of this approach is that Gedcom.pm should be
    useful if the Gedcom grammar is ever updated. It also made the software
    easier to write, and probably more dependable too. I suppose this is the
    virtue of laziness shining through.

    The vice of laziness is also shining brightly - I need to document how
    to use this module in much greater detail. This is happening - this
    release has more documentation than the previous ones - but if you would
    like information feel free to send me mail.

    This module provides some functions which work over the entire Gedcom
    file, such as reformatting dates, renumbering entries and ordering the
    entries. It also allows access to individuals, and then to relations of
    individuals, for example sons, siblings, spouse, parents and so forth.

    The distribution includes a lines2perl program to convert LifeLines
    programs to Perl. The program works, but it has a few rough edges, and
    some missing functionality. I'll be working on it when it hits the top
    of my TODO list.

    There is now an option for read only access to the gedcom file.
    Actually, this doesn't stop you changing or writing the file, but it
    does parse the gedcom file lazily, meaning that only those portions of
    the gedcom file which are needed will be read. This can provide a
    substantial saving of time and memory providing that not too much of the
    gedcom file is read. If you are going to read the whole gedcom file,
    this mode is less efficient unless you do some manual housekeeping.

    Note that this is still considered beta software - caveat emptor.

    Should you find this software useful, or if you make changes to it, or
    if you would like me to make changes to it, please send me mail. I would
    like to have some sort of an idea of the use this software is getting.
    Apart from being of interest to me, this will guide my decisions when I
    feel the need to make changes to the interface.

    There is a low volume mailing list available for discussing the use of
    Perl in conjunction with genealogical work. This is an appropriate forum
    for discussing Gedcom.pm and if you use or are interested in this module
    I would encourage you to join the list. To subscribe send an empty
    message to perl-gedcom-subscribe@perl.org.

    To store my genealogy I wrote a syntax file (gedcom.vim) and used vim
    (http://www.vim.org) to enter the data, and Gedcom.pm to validate and
    manipulate it. I find this to be a nice solution.

