where $class is one of CPAN::Author, CPAN::Module, or CPAN::Distribution, and $id is the id CPAN.pm uses to identify the class. The method searches the CPAN::SQLite database by name using the appropriate author, dist, or module mode, and if a result is found, calls

where $class is one of CPAN::Author, CPAN::Module, or CPAN::Distribution, and $id is the id CPAN.pm uses to identify the class. The method searches the CPAN::SQLite database by query using the appropriate author, dist, or module mode, and if results are found, calls

$CPAN::META->instance(
$class => $id
)->set(
%attributes
);

for each match to register an instance of this class within CPAN.pm.

The attributes set within $CPAN::META-instance> depend on the particular class.

where $results are the results returned from CPAN::SQLite. Here, %dslip is a hash containing keys statd, stats, statl, stati, and statp, with corresponding values being the registered dslip entries for the module, if present.

As well, a CONTAINSMODS key to $CPAN::META is added, this being a hash reference whose keys are the modules contained within the distribution.

There is also a method available reload, which rebuilds the database. It can be used as

$obj->reload(force => 1, time => $time);

The time option (which, if not passed in, will default to the current time) will be used to compare the current time to the mtime of the database file; if they differ by more than one day, the database will be rebuilt. The <force> option, if given, will force a rebuilding of the database regardless of the time difference.