Package::Generator(3) User Contributed Perl DocumentationPackage::Generator(3)
NAME
Package::Generator - generate new packages quickly and easily
VERSION
version 1.106
SYNOPSIS
use Package::Generator;
my $package = Package::Generator->new_package;
...
DESCRIPTION
This module lets you quickly and easily construct new packages. It
gives them unused names and sets up their package data, if provided.
INTERFACE
new_package
my $package = Package::Generator->new_package(\%arg);
This returns the newly generated package. It can be called with no
arguments, in which case it just returns the name of a pristene
package. The "base" argument can be provided to generate the package
under an existing namespace. A "make_unique" argument can also be
provided; it must be a coderef which will be passed the base package
name and returns a unique package name under the base name.
A "data" argument may be passed as a reference to an array of pairs.
These pairs will be used to set up the data in the generated package.
For example, the following call will create a package with a $foo set
to 1 and a @foo set to the first ten counting numbers.
my $package = Package::Generator->new_package({
data => [
foo => 1,
foo => [ 1 .. 10 ],
]
});
For convenience, "isa" and "version" arguments may be passed to
"new_package". They will set up @ISA, $VERSION, or &VERSION, as
appropriate. If a single scalar value is passed as the "isa" argument,
it will be used as the only value to assign to @ISA. (That is, it will
not cause $ISA to be assigned; that wouldn't be very helpful.)
assign_symbols
Package::Generator->assign_symbols($package, \@key_value_pairs);
This routine is used by "new_package" to set up the data in a package.
package_exists
... if Package::Generator->package_exists($package);
This method returns true if something has already created a symbol
table for the named package. This is equivalent to:
... if defined *{$package . '::'};
It's just a little less voodoo-y.
AUTHOR
Ricardo SIGNES <rjbs AT cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2005 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
perl v5.26.3 2013-12-29 Package::Generator(3)