User::I...:Archive(3)

πŸ¦‹ User::I...:Archive(3) β€” the manual page, but make it cute

okay so bestie, welcome to the group chat for User::Identity::Archive(3) β€” a User Contributed Perl Documentation page. Pull up a chair, grab a boba, we're doing lore πŸ’–


✨ NAME ✨

User::Identity::Archive β€” it's the base class for archiving user information. That's it, that's the whole job description, she's a foundation, she's the blueprint, she's mother πŸ‘‘


🌸 INHERITANCE 🌸

The family tree, bestie, get out your little ancestry dot com account:

User::Identity::Archive
  is a User::Identity::Item

User::Identity::Archive is extended by
  User::Identity::Archive::Plain

So she is a User::Identity::Item, and she gets extended by User::Identity::Archive::Plain. Passing the genes down, slay 🧬✨


πŸŽ€ SYNOPSIS πŸŽ€

Here's the vibe check in code form, verbatim, don't touch a single character:

use User::Identity::Archive::Plain;
my $friends = User::Identity::Archive::Plain->new('friends');
$friends->from(\*FH);
$friends->from('.friends');

See? You make a friends archive, then you feed it a filehandle, then you feed it a file. Incredible. No notes. πŸ’…


πŸ’œ DESCRIPTION πŸ’œ

So like β€” an archive stores collections. How and where that happens? Depends on the type of archive, bestie. Every archiver does its own thing. Also some archivers may limit the kinds of selections which can be stored β€” so don't come for them when they can't hold everything, they're doing their best 🫢

And it Extends "DESCRIPTION" in User::Identity::Item. So go read that one too, iykyk.


πŸ”₯ OVERLOADED πŸ”₯

ngl this section is empty on the page β€” no overloaded operators listed, no cap. πŸ™ˆ

⭐ METHODS ⭐

She Extends "METHODS" in User::Identity::Item β€” so a lot of what's below is inherited, and we're gonna say that every single time because the original does. Periodt.

🧚 Constructors

Extends "Constructors" in User::Identity::Item.

$class->new( [$name], %options )

The sacred option table, presented verbatim because I respect the lore:

-Option     --Defined in          --Default
 description  User::Identity::Item  undef
 from                               undef
 name         User::Identity::Item  <required>
 parent       User::Identity::Item  undef

And now the receipts, one by one:

  • description => STRING β€” default undef, defined in User::Identity::Item
  • from => $filehandle|$file β€” default undef πŸ“
  • name => STRING β€” default <required>, defined in User::Identity::Item. Yeah bestie, she's required, you gotta name her πŸ’…
  • parent => OBJECT β€” default undef, defined in User::Identity::Item

πŸŽ€ Attributes

Extends "Attributes" in User::Identity::Item.

  • $obj->description() β€” Inherited, see "Attributes" in User::Identity::Item
  • $obj->name( [$newname] ) β€” Inherited, see "Attributes" in User::Identity::Item

🌈 Collections

Extends "Collections" in User::Identity::Item.

  • $obj->add($collection, $role) β€” Inherited, see "Collections" in User::Identity::Item
  • $obj->addCollection( $object | <[$type], %options> ) β€” Inherited, see "Collections" in User::Identity::Item
  • $obj->collection($name) β€” Inherited, see "Collections" in User::Identity::Item
  • $obj->parent( [$parent] ) β€” Inherited, see "Collections" in User::Identity::Item
  • $obj->removeCollection($object|$name) β€” Inherited, see "Collections" in User::Identity::Item
  • $any->type() β€” Inherited, see "Collections" in User::Identity::Item
  • $obj->user() β€” Inherited, see "Collections" in User::Identity::Item

That's seven whole inherited baddies, we love a delegation moment πŸ’–


πŸ¦‹ Searching

Extends "Searching" in User::Identity::Item.

  • $obj->find($collection, $role) β€” Inherited, see "Searching" in User::Identity::Item

πŸ‘‘ Access to the archive

This is the main character section, obviously.

$obj->from($source, %options)

Read definitions from the specified $source, which usually can be a filehandle or filename. The syntax used in the information $source is archiver dependent β€” so like, don't assume, every archiver has its own handwriting ✍️

real talk bestie: Not all archivers implement from() β€” so you may want to check with UNIVERSAL::can() beforehand. Yes, that's exactly what the page says. Guard yourself, queen πŸ›‘οΈ

Β» example:

use User::Identity::Archive::Some;
my $a = User::Identity::Archive::Some->new('xyz');
$a->from(\*STDIN) if $a->can('from');

Look at that if $a->can('from') β€” that's the self-care. That's the boundary. That's the vibe check before you commit πŸ”₯


πŸ’€ DIAGNOSTICS πŸ’€

The moments where things go sideways. Dramatic, but accurate:

  • Error: cannot load collection module for $type ($class): $@ β€” Either the specified $type does not exist, or that module named $class returns compilation errors. If the type as specified in the warning is not the name of a package, you specified a nickname which was not defined. Maybe you forgot the 'require' the package which defines the nickname. Cast by addCollection()
  • Error: nvalid collection $name. β€” The collection with $name does not exist and can not be created. Cast by add()
and yes, that error really does say nvalid on the page β€” I am NOT fixing it, that's canon, character for character, no cap πŸ’…
  • Error: this $object is not a collection. β€” Cast by addCollection()

πŸ“ SEE ALSO πŸ“

This module is part of User-Identity version 4.00, built on December 12, 2025. Website: http://perl.overmeer.net/CPAN/ β€” go say hi, she's famous ✨


🌸 LICENSE 🌸

  • For contributors see file ChangeLog.
  • This software is copyright (c) 2003-2025 by Mark Overmeer. 🫢
  • This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

and that's the whole page, bestie β€” every option, every inherited method, every diagnostic, untouched. facts preserved, vibes upgraded. πŸ’–

cute lil sign-off: this page came to you from perl v5.42.0 and is dated 2026-01-17. mwah, go forth and archive πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from