# perldoc > User::Identity::Archive

## NAME
    [User::Identity::Archive](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive/markdown) - base class for archiving user information

## INHERITANCE
     [User::Identity::Archive](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive/markdown)
       is a [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

     [User::Identity::Archive](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive/markdown) is extended by
       [User::Identity::Archive::Plain](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive%3A%3APlain/markdown)

## SYNOPSIS
     use [User::Identity::Archive::Plain](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive%3A%3APlain/markdown);
     my $friends = [User::Identity::Archive::Plain](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive%3A%3APlain/markdown)->new('friends');
     $friends->from(\*FH);
     $friends->from('.friends');

## DESCRIPTION
    An archive stores collections. It depends on the type of archive how and where that is done.
    Some archivers may limit the kinds of selections which can be stored.

    Extends "DESCRIPTION" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

## OVERLOADED
## METHODS
    Extends "METHODS" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

### Constructors
    Extends "Constructors" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

    [User::Identity::Archive](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive/markdown)->new( [$name], %options )
         -Option     --Defined in          --Default
          description  [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)  undef
          from                               undef
          name         [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)  <required>
          parent       [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)  undef

        description => STRING
        from => FILEHANDLE|FILENAME
        name => STRING
        parent => OBJECT

### Attributes
    Extends "Attributes" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

    $obj->description()
        Inherited, see "Attributes" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->name( [$newname] )
        Inherited, see "Attributes" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

### Collections
    Extends "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

    $obj->add($collection, $role)
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->addCollection( $object | <[$type], %options> )
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->collection($name)
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->parent( [$parent] )
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->removeCollection($object|$name)
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->type()
    [User::Identity::Archive](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive/markdown)->type()
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->user()
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

### Searching
    Extends "Searching" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

    $obj->find($collection, $role)
        Inherited, see "Searching" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

### Access to the archive
    $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.

        Not all archivers implement from(), so you may want to check with [UNIVERSAL::can](https://www.chedong.com/phpMan.php/perldoc/UNIVERSAL%3A%3Acan/markdown)()
        beforehand.

        example:

         use [User::Identity::Archive::Some](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive%3A%3ASome/markdown);
         my $a = [User::Identity::Archive::Some](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AArchive%3A%3ASome/markdown)->new('xyz');
         $a->from(\*STDIN) if $a->can('from');

## DIAGNOSTICS
    Error: $object is not a collection.
        The first argument is an object, but not of a class which extends
        [User::Identity::Collection](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ACollection/markdown).

    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.

    Error: Creation of a collection via $class failed.
        The $class did compile, but it was not possible to create an object of that class using the
        options you specified.

    Error: Don't know what type of collection you want to add.
        If you add a collection, it must either by a collection object or a list of options which
        can be used to create a collection object. In the latter case, the type of collection must
        be specified.

    Warning: No collection $name
        The collection with $name does not exist and can not be created.

## SEE ALSO
    This module is part of User-Identity distribution version 1.02, built on April 17, 2023.
    Website: <http://perl.overmeer.net/CPAN/>

## LICENSE
    Copyrights 2003-2023 by [Mark Overmeer <<markov@cpan.org>>]. For other contributors see ChangeLog.

    This program is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself. See <http://dev.perl.org/licenses/>

