Palm::Address(3pm)
π Palm::Address β the AddressBook handler, bestie edition π
okay so this is Palm::Address, a lil helper class from the User Contributed Perl Documentation corner of the Perl 5 universe (that's the 3pm part of the name, iykyk). It's the handler for Palm OS AddressBook databases. Let's get into it. π¦
β¨ NAME β¨
Palm::Address β handler for Palm OS AddressBook databases. that's it, that's the vibe. π
πΈ VERSION πΈ
This doc describes version 1.400 of Palm::Address, released March 14, 2015, as part of Palm version 1.400. vintage but iconic. π
π¦ SYNOPSIS π¦
use Palm::Address;
literally one line. slay. β¨
π DESCRIPTION π
So the Address PDB handler is a helper class for the Palm::PDB package. Its whole job? Parsing AddressBook databases. That's the assignment and it ate. π₯
π AppInfo block π
The AppInfo block kicks off with the standard category support β go peek at Palm::StdAppInfo for the deets on that one.
Other fields in there include:
$pdb->{appinfo}{lastUniqueID}
$pdb->{appinfo}{dirtyFields}
ngl, I don't know what these are. π
$pdb->{appinfo}{fieldLabels}{name}
$pdb->{appinfo}{fieldLabels}{firstName}
$pdb->{appinfo}{fieldLabels}{company}
$pdb->{appinfo}{fieldLabels}{phone1}
$pdb->{appinfo}{fieldLabels}{phone2}
$pdb->{appinfo}{fieldLabels}{phone3}
$pdb->{appinfo}{fieldLabels}{phone4}
$pdb->{appinfo}{fieldLabels}{phone5}
$pdb->{appinfo}{fieldLabels}{phone6}
$pdb->{appinfo}{fieldLabels}{phone7}
$pdb->{appinfo}{fieldLabels}{phone8}
$pdb->{appinfo}{fieldLabels}{address}
$pdb->{appinfo}{fieldLabels}{city}
$pdb->{appinfo}{fieldLabels}{state}
$pdb->{appinfo}{fieldLabels}{zipCode}
$pdb->{appinfo}{fieldLabels}{country}
$pdb->{appinfo}{fieldLabels}{title}
$pdb->{appinfo}{fieldLabels}{custom1}
$pdb->{appinfo}{fieldLabels}{custom2}
$pdb->{appinfo}{fieldLabels}{custom3}
$pdb->{appinfo}{fieldLabels}{custom4}
$pdb->{appinfo}{fieldLabels}{note}
These? They're the names of the various fields inside the address record. π
$pdb->{appinfo}{country}
An integer β the code for the country these labels were designed for. And the actual country name is right here, ready for you:
$Palm::Address::countries[$pdb->{appinfo}{country}];
$pdb->{appinfo}{misc}
Another integer. The least-significant bit is a flag telling you whether the database should be sorted by company. Every other bit? Reserved. minding their own business. β¨
π Sort block π
$pdb->{sort}
A scalar β the raw data of the sort block. no notes. π
π Records π
$record = $pdb->{records}[N];
$record->{fields}{name}
$record->{fields}{firstName}
$record->{fields}{company}
$record->{fields}{phone1}
$record->{fields}{phone2}
$record->{fields}{phone3}
$record->{fields}{phone4}
$record->{fields}{phone5}
$record->{fields}{address}
$record->{fields}{city}
$record->{fields}{state}
$record->{fields}{zipCode}
$record->{fields}{country}
$record->{fields}{title}
$record->{fields}{custom1}
$record->{fields}{custom2}
$record->{fields}{custom3}
$record->{fields}{custom4}
$record->{fields}{note}
These are scalars β the values of the various address book fields. π«Ά
$record->{phoneLabel}{phone1}
$record->{phoneLabel}{phone2}
$record->{phoneLabel}{phone3}
$record->{phoneLabel}{phone4}
$record->{phoneLabel}{phone5}
okay so most fields in an AddressBook record are super straightforward: the "name" field always gives the person's last name. easy.
But the "phoneN" fields? those are the chaotic ones. They can mean different things in different records. There are five of those fields in every record, and each one can take on one of eight different values: "Work", "Home", "Fax", "Other", "E-mail", "Main", "Pager" and "Mobile". eight options, five slots, choose wisely. π
The $record->{phoneLabel}{phone*} fields are integers. Each one is an index into @Palm::Address::phoneLabels, and it tells you which particular type of phone number each of the $record->{phone*} fields actually represents. π₯
$record->{phoneLabel}{display}
Just like the phone* fields above, this is an index into @Palm::Address::phoneLabels. It says which of the phone* fields to display in the list view. main character selection energy. π
$record->{phoneLabel}{reserved}
I don't know what this is either. π mystery field stays mysterious.
π METHODS π
β new β
$pdb = new Palm::Address;
Creates a brand new PDB, initialized with all the various Palm::Address fields and an empty record list. π
Use this method when you're creating an Address PDB from scratch. glow-up time.
πΈ new_Record πΈ
$record = $pdb->new_Record;
Creates a new Address record, with blank values for all of the fields. The AppInfo block will contain only an "Unfiled" category, with ID 0. blank slate, baby. β¨
Heads up bestie:new_Recorddoes not add the new record to$pdb. For that, you want$pdb->append_Record. don't forget the second step, fr fr. π
π SEE ALSO π
Palm::PDBPalm::StdAppInfo
π CONFIGURATION AND ENVIRONMENT π
Palm::Address requires no configuration files or environment variables. low maintenance queen. π
π INCOMPATIBILITIES π
None reported. we love a peaceful existence. π
π BUGS AND LIMITATIONS π
The new() method initializes the AppInfo block with English labels and "United States" as the country. so like, default American energy. πΊπΈβ¨
π«Ά AUTHORS π«Ά
- Andrew Arensburger
<arensb AT ooblick.com> - Currently maintained by Christopher J. Madsen
<perl AT cjmweb.net>
Please report any bugs or feature requests to <bug-Palm AT rt.cpan.org> or through the web interface at <http://rt.cpan.org/Public/Bug/Report.html?Queue=Palm>.
You can follow or contribute to p5-Palm's development at <https://github.com/madsen/p5-Palm>. go be part of the story bestie, the repo is right there. π¦
π COPYRIGHT AND LICENSE π
This software is copyright (c) 2003 by Andrew Arensburger & Alessandro Zummo.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. iconic licensing behavior. π
π₯ DISCLAIMER OF WARRANTY π₯
BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENSE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
yes it's all caps, yes it's screaming, that's just how warranty disclaimers are built. it's giving legal drama. π
and that's the whole page, bestie!! this one came from perl v5.34.0, dated 2022-06-16, filed under Palm::Address(3pm). thanks for reading, mwah πβ¨
π¦ where this page comes from
- debian bookworm: libpalm-perl 1:1.400-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libpalm-perl 1:1.400-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libpalm-perl 1:1.400-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libpalm-perl 1:1.400-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libpalm-perl 1:1.400-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms