Mail::...lection(3pm)

πŸ’– NAME πŸ’–

Mail::Box::Collection β€” it's a whole collection of subfolders, bestie. A folder situation. A folder moment.


🌸 INHERITANCE 🌸

okay so the family tree is literally giving royal lineage:

Mail::Box::Collection
  is a User::Identity::Collection
  is a User::Identity::Item

Mail::Box::Collection
  is a Mail::Reporter

πŸ¦‹ SYNOPSIS πŸ¦‹

bestie there is genuinely nothing here. The original page left this section completely blank, and I'm not about to make stuff up. No cap. Moving on. πŸ’€

✨ DESCRIPTION ✨

So the Mail::Box::Collection object keeps a whole set of Mail::Box::Identity objects, and each one of those describes the location of one single mailbox (aka a folder). Think of it as a folder group chat where every member knows exactly where their folder lives. πŸŽ€

And like, who uses this? The Mail::Box::Manage::User object does, to administer the folders of a single user β€” and it can do that even if those folders are closed. Closed folders still get managed, periodt.

It also extends "DESCRIPTION" in Mail::Reporter.

And it extends "DESCRIPTION" in User::Identity::Collection. double inheritance energy fr fr.

🌈 OVERLOADED 🌈

It extends "OVERLOADED" in User::Identity::Collection, obviously.

  • overload: '""' stringification β€” inherited, see "OVERLOADED" in User::Identity::Collection
  • overload: '@{}' array dereference β€” inherited, see "OVERLOADED" in User::Identity::Collection

πŸ‘‘ METHODS πŸ‘‘

Extends "METHODS" in Mail::Reporter.

Extends "METHODS" in User::Identity::Collection.

🧚 Constructors

Extends "Constructors" in Mail::Reporter.

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

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

Inherited, see "Constructors" in Mail::Reporter

Here's the option table, slay:

 -Option     --Defined in                --Default
 description  User::Identity::Item        undef
 folder_type                              <from parent>
 item_type    User::Identity::Collection  Mail::Box::Identity
 manager                                  <from parent>
 name         User::Identity::Item        'folders'
 parent       User::Identity::Item        undef
 roles        User::Identity::Collection  undef
  • description => STRING β€” a string. You describe things. Iconic behaviour.
  • folder_type => $class β€” the class of folder.
  • item_type => CLASS β€” which CLASS the items are.
  • manager => $object β€” a pre-prepared Mail::Box::Manager $object (and ngl, it could totally be a Mail::Box::Manage::User).
  • name => STRING β€” a STRING name, bestie.
  • parent => OBJECT β€” an OBJECT parent.
  • roles => $role|\@roles β€” a $role or an \@roles array ref.

πŸ’… Attributes

Extends "Attributes" in Mail::Reporter.

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

  • $obj->description() β€” inherited, see "Attributes" in User::Identity::Item
  • $obj->folderType( [$folderclass] ) β€” returns the type of folder (on this location). And when you specify it, $folderclass must be a Mail::Box extension. no exceptions, babe.
  • $obj->itemType() β€” inherited, see "Attributes" in User::Identity::Collection
  • $obj->manager() β€” the Mail::Box::Manager (which is usually a Mail::Box::Manage::User object), and it's the one handling the opening of folders. main character energy tbh.
  • $obj->name( [$newname] ) β€” inherited, see "Attributes" in User::Identity::Item
  • $obj->roles() β€” inherited, see "Attributes" in User::Identity::Collection

🫢 Collections

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

  • $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

🌟 Maintaining roles

Extends "Maintaining roles" in User::Identity::Collection.

  • $obj->addRole($role|([$name], %options)) β€” inherited, see "Maintaining roles" in User::Identity::Collection
  • $obj->removeRole($role|$name) β€” inherited, see "Maintaining roles" in User::Identity::Collection
  • $obj->renameRole( <$role|$oldname>, $newname ) β€” inherited, see "Maintaining roles" in User::Identity::Collection
  • $obj->sorted() β€” inherited, see "Maintaining roles" in User::Identity::Collection

πŸ”₯ Searching

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

  • $obj->find($name|CODE|undef) β€” inherited, see "Searching" in User::Identity::Collection

πŸ“ Error handling

Extends "Error handling" in Mail::Reporter.

  • $obj->AUTOLOAD() β€” inherited, see "Error handling" in Mail::Reporter
  • $obj->notImplemented() β€” inherited, see "Error handling" in Mail::Reporter

πŸŽ€ Cleanup

Extends "Cleanup" in Mail::Reporter.

  • $obj->DESTROY() β€” inherited, see "Cleanup" in Mail::Reporter

πŸ’€ DIAGNOSTICS πŸ’€

okay bestie, this is the part where things go wrong. Pay attention, fr fr.
  • Error: cannot create a $type to add this to my collection. Some options are specified to create a $type object, which is native to this collection. However, for some reason this failed. Cast by addRole()
  • 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: cannot rename $from into $to: already exists. Cast by renameRole()
  • Error: cannot rename $from into $to: doesn't exist. Cast by renameRole()
  • Error: class $package does not implement method $method. Fatal error: the specific $package (or one of its superclasses) does not implement this method where it should. This message means that some other related classes do implement this method however the class at hand does not. Probably you should investigate this and probably inform the author of the package. Cast by notImplemented()
  • Error: invalid collection $name. The collection with $name does not exist and can not be created. Cast by add()
  • Error: this $object is not a collection. Cast by addCollection()
  • Error: wrong type of role for $collection: requires a $expect but got a $type. Each $collection groups sets of roles of one specific type ($expect). You cannot add objects of a different $type. Cast by addRole()

πŸ” SEE ALSO πŸ”

This module is part of Mail-Box version 4.02, built on April 10, 2026.

Website: http://perl.overmeer.net/CPAN/

πŸ“œ LICENSE πŸ“œ

For contributors see file ChangeLog.

This software is copyright (c) 2001-2026 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.


okay that's the whole thing bestie!! πŸ’–βœ¨ go forth and manage those folders, you absolute icon πŸ‘‘πŸŒΈ no cap, this page was generated from perl v5.40.1 on 2026-05-09 πŸ¦‹πŸ’…

πŸ“¦ where this page comes from