---
name: "CPAN::SQLite::META"
section: "3pm"
platform: "linux"
package: "libcpan-sqlite-perl"
version: "0.220-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/CPAN::SQLite::META"
---

# CPAN::SQLite::META(3pm)

helper module for CPAN.pm integration

## NAME

CPAN::SQLite::META - helper module for CPAN.pm integration

## VERSION

version 0.220

## DESCRIPTION

This module has no direct public interface, but is intended as a helper module for use of CPAN::SQLite within the CPAN.pm module. A new object is created as

```
  my $obj = CPAN::SQLite::META->new($CPAN::META);
```

where `$CPAN::META` comes from CPAN.pm. There are then two main methods available.

- "set"

  This is used as

  ```
     $obj->set($class, $id);
  ```

  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

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

  to register an instance of this class within `"CPAN.pm"`.

- "ssearch"

  This is used as

  ```
     $obj->search($class, $id);
  ```

  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.

- author

  The attributes are

  ```
         'FULLNAME' => $results->{fullname},
         'EMAIL' => $results->{email},
  ```

  where `$results` are the results returned from `"CPAN::SQLite"`.

- module

  The attributes are

  ```
          'description' => $results->{mod_abs},
          'userid' => $results->{cpanid},
          'CPAN_VERSION' => $results->{mod_vers},
          'CPAN_FILE' => $results->{download},
          'CPAN_USERID' => $results->{cpanid},
  ```

  where `$results` are the results returned from `"CPAN::SQLite"`.

- dist

  The attributes are

  ```
         'DESCRIPTION' => $results->{dist_abs},
         'CPAN_USERID' => $results->{cpanid},
         'CPAN_VERSION' => $results->{dist_vers},
  ```

  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.
