Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Reading notes in gedcom files?

by StarkRavingCalm (Sexton)
on Apr 26, 2010 at 16:48 UTC ( #836953=perlquestion: print w/ replies, xml ) Need Help??
StarkRavingCalm has asked for the wisdom of the Perl Monks concerning the following question:

Hoping I can get this question answered here.

I have been trying to use perl to parse gedcom files and have not had much luck.

My main goal is to get it to show me a list of people and then the contents of the notes section of their record. My script is based on the example code found here:

http://search.cpan.org/dist/Gedcom/lib/Gedcom.pm

The only results I can seem to get back is the persons name and the reference number of the notes associated with that person.

I appreciate any help on this matter

Thanks

Script follows:

#!/bin/perl -w use strict; use Gedcom; my $ged = Gedcom->new(shift); for my $i ($ged->individuals) { for my $n ($i->get_value("note")) { print "========================================\n"; print $i->name, "\n"; print $i->note, "\n"; #print "========================================\n"; } }

Comment on Reading notes in gedcom files?
Download Code
Re: Reading notes in gedcom files?
by ahmad (Hermit) on Apr 26, 2010 at 17:11 UTC

    Although I don't know what Gedcom is or what's used for

    I think your inner loop should have print $n instead of print $i->note

Re: Reading notes in gedcom files?
by toolic (Chancellor) on Apr 26, 2010 at 17:21 UTC

      Thanks to both of you.

      It's leaning toward a formatting issue with the way the source program creates the Gedcom files.

      I'll post again with the final outcome.

      Thanks, Rich

        To close this off, it would seem the Notes field in Gedcom files can accept many formats.

        The script below works as originally expected.

        Thanks for the help.

        #!/bin/perl -w use strict; use Gedcom; my $ged = Gedcom->new(shift); $ged->resolve_xrefs; for my $i ( $ged->individuals ) { for my $n ( $i->note ) { print "========================================\n"; print $i->name, "\n"; if (ref $n) { print $n->get_value, "\n"; } else { print "$n\n"; } #print "========================================\n"; } }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://836953]
Approved by ahmad
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (9)
As of 2014-12-26 15:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (171 votes), past polls