| Package-Generator documentation | view source | Contained in the Package-Generator distribution. |
Package::Generator - generate new packages quickly and easily
version 0.103
use Package::Generator;
my $package = Package::Generator->new_package;
...
This module lets you quickly and easily construct new packages. It gives them unused names and sets up their package data, if provided.
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.)
Package::Generator->assign_symbols($package, \@key_value_pairs);
This routine is used by new_package to set up the data in a package.
... 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.
Ricardo SIGNES, <rjbs@cpan.org>
Please report any bugs or feature requests to
bug-package-generator@rt.cpan.org, or through the web interface at
http://rt.cpan.org. I will be notified, and then you'll automatically be
notified of progress on your bug as I make changes.
Copyright 2006 Ricardo Signes, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Package-Generator documentation | view source | Contained in the Package-Generator distribution. |