Gedcom - a Perl module to manipulate Gedcom genealogy files
Perl Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


    Gedcom - a module to manipulate Gedcom genealogy files

    Version 1.20 - 17th September 2017

    Copyright 1998-2013, Paul Johnson (

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

    The latest version of this software should be available from my

    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 (  Information
    about Gedcom is available as a zip file at  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...


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

    Optional Modules:       to work with dates     to use soundex to use lines2perl             to use the LifeLines function roman from lines2perl

    The Gedcom format is specified in a grammar file (gedcom-5.5.grammar). parses the grammar which is then used to validate and allow
    manipulation of the Gedcom file.  I have only used 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
    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 or better still, ask on the
    mailing list.

    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 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

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