NAME
Extorter - Import Routines By Any Means Necessary
VERSION
version 0.04
SYNOPSIS
use Extorter qw(
*utf8
*strict
*warnings
feature^say
feature^state
Carp::croak
Carp::confess
Data::Dump::dump
Digest::SHA1::sha1_hex
Digest::SHA1::sha1_base64
Encode::encode_utf8
Encode::decode_utf8
IO::All::io
List::AllUtils::distinct
List::AllUtils::firstval
List::AllUtils::lastval
List::AllUtils::pairs
List::AllUtils::part
List::AllUtils::uniq
Memoize::memoize
Scalar::Util::blessed
Scalar::Util::refaddr
Scalar::Util::reftype
Scalar::Util::weaken
);
DESCRIPTION
The Extorter module allows you to create import lists which extract routines from the package(s) specified. It will import routines found in the package variables @EXPORT
, @EXPORT_OK
and %EXPORT_TAGS
, or, extract routines defined in the package which are not explicitly exported. Otherwise, as a last resort, Extorter will try to load the package, using a parameterized use
statement, in the event that the package has a custom or magical importer that does not conform to the Exporter interface.
Extorter accepts a list of fully-qualified declarations. The verbosity of the declarations are meant to promote explicit, clean, and reasonable import lists. Extorter has the added bonus of extracting functionality from packages which may not have originally been designed to be imported. Declarations are handled in the order in which they're declared, which means, as far as the import and/or extraction order goes, the last routine declared will be the one available to your program and any redefine
warnings will be suppressed. This is a feature not a bug. NOTE: Any declaration prefixed with an asterisk is assumed to be a fully-qualified namespace of a package and is imported directly.
FUNCTIONS
extort::into
The into
function declared in the extort
package, used as a kind of global method invokable by any package, is designed to load and import the specified @declarations
, as showcased in the synopsis, into the $target
package.
$package->extort::into($target, @declarations);
e.g.
$package->extort::into($package, 'Scalar::Util::blessed');
$package->extort::into($package, 'Scalar::Util::refaddr');
$package->extort::into($package, 'Scalar::Util::reftype');
$package->extort::into($package, 'Scalar::Util::weaken');
$package->extort::into($target, 'List::AllUtils::distinct');
$package->extort::into($target, 'List::AllUtils::firstval');
$package->extort::into($target, 'List::AllUtils::lastval');
$package->extort::into($target, 'List::AllUtils::pairs');
$package->extort::into($target, 'List::AllUtils::part');
$package->extort::into($target, 'List::AllUtils::uniq');
AUTHOR
Al Newkirk <anewkirk@ana.io>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Al Newkirk.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.