User::I...:System(3)

πŸ’– User::I...:System(3) β€” User Contributed Perl Documentation πŸ’–

okay bestie, sit down, we're talking about User::I...:System(3) from the User Contributed Perl Documentation section. it's giving perl, it's giving identity management, it's giving "yes i have a presence on that server actually". let's get into it 🫢


✨ NAME ✨

User::Identity::System β€” the physical system of a person. like, the actual box. the machine. her server. πŸ’»βœ¨


🌸 INHERITANCE 🌸

User::Identity::System
  is a User::Identity::Item

so yeah, it's a User::Identity::Item underneath. family tree moment πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

use User::Identity;
use User::Identity::System;
my $me   = User::Identity->new(...);
my $server = User::Identity::System->new(...);
$me->add(system => $server);

# Simpler

use User::Identity;
my $me   = User::Identity->new(...);
my $addr = $me->add(system => ...);

look at that second one. the Simpler version. lowkey the main character. you just add a system and the object builds itself for you. slay ✨


🌈 DESCRIPTION 🌈

so the User::Identity::System object holds the description of a user's presence on a system. that's the whole vibe. your person, on a machine, described. πŸ’…

the systems get collected together by a User::Identity::Collection::Systems object β€” like a little friend group of servers, no cap.

⚠️ important bestie: nearly all methods can return undef. so check your returns. don't be out here assuming things. 😭

this extends DESCRIPTION in User::Identity::Item.


πŸ’… METHODS πŸ’…

extends METHODS in User::Identity::Item.

πŸŽ€ Constructors πŸŽ€

extends Constructors in User::Identity::Item.

  • $class->new( [$name], %options ) β€” creates a shiny new system. you can pass a name as the first argument, or just drop it in the OPTION list. and if you don't give it a name at all? the organization gets used as the name instead. cute little fallback. πŸ™ˆ

here's the full options table, verbatim, because facts are facts:

 -Option     --Defined in          --Default
  description  User::Identity::Item  undef
  hostname                           'localhost'
  location                           undef
  name         User::Identity::Item  <required>
  os                                 undef
  parent       User::Identity::Item  undef
  password                           undef
  username                           undef

and now the breakdown, one by one:

  • description => STRING β€” the description, obviously.
  • hostname => $name β€” the $name of the system we're describing. and listen, it is preferred to use full system names, not abbreviations. like, use "www.tux.aq" instead of just "www" so you don't get your wires crossed. full names only, we're not doing confusion today. 🚫
  • location => $nick|OBJECT β€” the $nick of a location that's defined for the same user. or you can just hand it a User::Identity::Location OBJECT directly. your call, bestie.
  • name => STRING β€” the name. yeah.
  • os => STRING β€” the name of the operating system running on the server. it is advised to use the same names Perl's $^O variable uses. go peek at the perlvar man-page for that variable, and perlport for all the possible values. iykyk πŸ“–
  • parent => OBJECT β€” the parent object.
  • password => STRING β€” the password used to log in. and it must be un-encoded: directly usable.
🚨 BESTIE. LISTEN. be warned that storing un-encoded passwords is a high security list. that's the actual wording and it is NOT a drill. this is the dangerous part of the page. do not leave your plaintext passwords lying around like yesterday's iced coffee. πŸ’€
  • username => STRING β€” the username used to log in to this host.

🌸 Attributes 🌸

extends Attributes in User::Identity::Item.

  • $obj->description() β€” inherited, see "Attributes" in User::Identity::Item.
  • $obj->hostname() β€” the hostname getter, that's it, that's the tweet.
  • $obj->location() β€” returns the object that describes which location this system relates to. the location can be used to find the name of the organization involved, or to create a signature. and if no location was specified? you get undef back. πŸ™ˆ
  • $obj->name( [$newname] ) β€” inherited, see "Attributes" in User::Identity::Item.
  • $obj->os() β€” the OS.
  • $obj->password() β€” the password. (un-encoded, remember? we talked about this. 😭)
  • $obj->username() β€” the username.

🧚 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.

πŸ” Searching πŸ”

extends Searching in User::Identity::Item.

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

πŸ’€ DIAGNOSTICS πŸ’€

the error messages, and what they're actually trying to tell you:

  • Error: cannot load collection module for $type ($class): $@ β€” either the $type you specified doesn't exist, or that module named $class is throwing compilation errors. and if the type named in the warning isn't a package name, then you gave a nickname that was never defined β€” maybe you forgot to require the package that defines that nickname. cast by addCollection().
  • Error: nvalid collection $name. β€” the collection with $name doesn't exist and can't be created. cast by add(). (yes, it really says nvalid. we don't fix, we report. 🫑)
  • 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/ 🌐


πŸ“œ 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. periodt. πŸ’…


and that's the whole page, bestie!! πŸŽ€ this one came out of perl v5.42.0, dated 2026-01-17, and it lives in the User::I...:System(3) slot in your manual. go forth and describe your servers responsibly β€” and for the love of everything, keep those passwords encoded. mwah πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from