User::I...:Systems(3)

πŸ‘‘ User::I...:Systems(3) β€” bestie edition

okay so this is User::I...:Systems(3), from the User Contributed Perl Documentation, and no cap it's lowkey the most useful little page for anyone juggling a user's logins across a bunch of machines. grab a strawberry πŸ“ and let's go.


✨ NAME ✨

User::Identity::Collection::Systems β€” a whole collection of system descriptions. that's it, that's the vibe. πŸ’…


🧬 INHERITANCE 🧬

 User::Identity::Collection::Systems
   is a User::Identity::Collection
   is a User::Identity::Item

so it's giving three generations of iconic lineage. it inherits down the whole chain, which is exactly why so much of this page says "inherited, see over there." πŸ‘‘


🌸 SYNOPSIS 🌸

there is literally nothing here in the source, bestie. an empty synopsis. iconic of it honestly. the real tea is all in DESCRIPTION and METHODS, keep scrolling. πŸ™ˆ


πŸ’– DESCRIPTION πŸ’–

This User::Identity::Collection::Systems object maintains a set of User::Identity::System objects, each one describing a login for the user on some system. so like β€” one human, many boxes, many logins, all neatly filed. main character organization energy. ✨

Extends "DESCRIPTION" in User::Identity::Collection. (read: the parent class wrote some of this and we're not re-explaining it, go look.) 🫢


πŸŒ€ OVERLOADED πŸŒ€

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

  • overload: "" stringification β€” inherited, see "OVERLOADED" in User::Identity::Collection. so you can drop it in a string and it just works. πŸͺ„
  • overload: @{} array dereference β€” inherited, see "OVERLOADED" in User::Identity::Collection. yes you can treat it like an array, slay.

πŸ› οΈ METHODS πŸ› οΈ

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

πŸŽ€ Constructors πŸŽ€

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

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

here's the full options tea, copied character for character because we do NOT skip details in this house:

     -Option     --Defined in                --Default
      description  User::Identity::Item        undef
      item_type    User::Identity::Collection  User::Identity::System
      name         User::Identity::Item        'systems'
      parent       User::Identity::Item        undef
      roles        User::Identity::Collection  undef

and now in cute bullet form:

  • description => STRING β€” the description. defined in User::Identity::Item, defaults to undef.
  • item_type => CLASS β€” the item type. defined in User::Identity::Collection, defaults to User::Identity::System.
  • name => STRING β€” the name. defined in User::Identity::Item, defaults to 'systems'.
  • parent => OBJECT β€” the parent. defined in User::Identity::Item, defaults to undef.
  • roles => $role|\@roles β€” the roles. defined in User::Identity::Collection, defaults to undef.

πŸ¦‹ Attributes πŸ¦‹

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

  • $obj->description() β€” inherited, see "Attributes" in User::Identity::Item.
  • $obj->itemType() β€” inherited, see "Attributes" in User::Identity::Collection.
  • $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.

πŸ’€ DIAGNOSTICS πŸ’€

the part where things go sideways. read these, they'll save you:

  • 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: nvalid collection $name. The collection with $name does not exist and can not be created. Cast by add(). (yes, it really is spelled nvalid in the source β€” not me, I promise πŸ™ˆ)
  • 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(). no mixing, periodt.

πŸ”— SEE ALSO πŸ”—

This module is part of User-Identity version 4.00, built on December 12, 2025. Website: http://perl.overmeer.net/CPAN/ 🌐


πŸ“œ 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. this one shipped as perl v5.42.0, dated 2026-01-17, and it lives in the manual as User::I...:Systems(3). go forth and manage those systems. you ate. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from