Palm::Address(3pm)

πŸ“¦
version 1.400 Β· 4 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– 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_Record does 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::PDB
  • Palm::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. πŸ¦‹


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