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.