---
name: "Exporter::Declare::Export"
section: "3pm"
platform: "linux"
package: "libexporter-declare-perl"
version: "0.114-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Exporter::Declare::Export"
---

# Exporter::Declare::Export(3pm)

Base class for all export objects.

## NAME

Exporter::Declare::Export - Base class for all export objects.

## DESCRIPTION

All exports are refs, and all are blessed. This class tracks some per-export information via an inside-out objects system. All things an export may need to do, such as inject itself into a package are handled here. This allows some complicated, or ugly logic to be abstracted out of the exporter and metadata classes.

## METHODS

- $class-\>new( $ref, exported\_by =\> $package, %data )

  Create a new export from `$ref`. You must specify the name of the class doing the exporting.

- $export-\>inject( $package, $name, @args )

  This will inject the export into `$package` under `$name`. `@args` are ignored in most cases. See Exporter::Declare::Export::Generator for an example where they are used.

- $package = $export-\>**exported\_by()**

  Returns the name of the package from which this export was originally exported.

- @params = $export-\>**required\_specs()**

  Documented for subclassing purposes. This should always return a list of required parameters at construction time.

- $export-\>**DESTROY()**

  Documented for subclassing purposes. This takes care of cleanup related to storing data in an inside-out objects system.

## AUTHORS

Chad Granum exodist7@gmail.com

## COPYRIGHT

Copyright (C) 2010 Chad Granum

Exporter-Declare is free software; Standard perl licence.

Exporter-Declare is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the license for more details.
