![]() |
![]()
| ![]() |
![]()
NAMEbbdb - Perl extension for reading and writing bbdb files SYNOPSISuse BBDB; my $x = new BBDB(); $x->decode($string); my $str = $x->encode(); # At this point, subject to the BUGS below # $str is the same as $string my $allR = BBDB::simple('/home/henry/.bbdb'); map { print $_->part('first')} @$allR; # print out all the first names DESCRIPTIONData FormatThe following is the data layout for a BBDB record. I have created a sample record with my own data. Each field is just separated by a space. I have added comments to the right ["Henry" The first name - a string "Laxen" The last name - a string ("Henry, Enrique") Also Known As - comma separated list "Elegant Solution" Business name - a string (["home" 415 789 1159 0] Phone number field - US style ["fax" 415 789 1156 0] Phone number field - US style ["mazatlan" "011-5269-164195"] Phone number field - International style ) (["mailing" "PMB 141" Address field - There are 3 fields for "524 San Anselmo Ave." "" for the street address, then one each "San Anselmo" "CA" (94960 2614)" for City, State, and Zip Code ] ["mazatlan" "Reino de Navarra #757" Address field - Note that there is no "Frac. El Cid" "" field for Country. That is unfortunate "Mazatlan" "Sinaloa, Mexico" The zip code field is quoted if its ("CP" "82110") not an integer ] ) ("nadine.and.henry@pobox.com" The net addresses - a list of strings "maztravel@maztravel.com") ((creation-date . "1999-09-02") The notes field - a list of alists (timestamp . "1999-10-17") (notes . "Always split aces and eights") (birthday "6/15") ) nil The cache vector - always nil ] After this is decoded it will be returned as a reference to a BBDB object. The internal structure of the BBDB object mimics the lisp structure of the BBDB string. It consists of a reference to an array with 9 elements The Data::Dumper output of the above BBDB string would just replaces all of the ()s with []s. It can be accessed by using the "$bbdb-"part('all')> method. Methods
DebuggingIf you find that some records in your BBDB file are failing to be recognized, trying setting "$BBDB::debug = 1;" to turn on debugging. We will then print out to STDERR the first field of the record that we were unable to recognize. Very handy for complicated BBDB records. AUTHORHenry Laxen <nadine.and.henry@pobox.com> http://www.maztravel.com/perl SEE ALSOBBDB texinfo documentation BUGSPhone numbers and zip codes may be converted from strings to integers if they are decoded and encoded. This should not affect the operation of BBDB. Also a null last name is converted from "" to nil, which also doesn't hurt anything. You might ask why I use arrays instead of hashes to encode the data in the BBDB file. The answer is that order matters in the bbdb file, and order isn't well defined in hashes. Also, if you use hashes, at least in the simple minded way, you can easily find yourself with legitimate duplicate keys.
|