Class::MOP::Package(3pm)
NAME
Class::MOP::Package - Package Meta Object
DESCRIPTION
The Package Protocol provides an abstraction of a Perl 5 package. A
package is basically namespace, and this module provides methods for
looking at and changing that namespace's symbol table.
METHODS
- Class::MOP::Package->initialize($package_name)
- This method creates a new "Class::MOP::Package" instance which
represents specified package. If an existing metaclass object
exists for the package, that will be returned instead. - Class::MOP::Package->reinitialize($package)
- This method forcibly removes any existing metaclass for the package
before calling "initialize". In contrast to "initialize", you may
also pass an existing "Class::MOP::Package" instance instead of
just a package name as $package. - Do not call this unless you know what you are doing.
- $metapackage->name
- This is returns the package's name, as passed to the constructor.
- $metapackage->namespace
- This returns a hash reference to the package's symbol table. The
keys are symbol names and the values are typeglob references. - $metapackage->add_package_symbol($variable_name, $$iinniittiiaall__vvaalluuee)
- This method accepts a variable name and an optional initial value. The $variable_name must contain a leading sigil.
- This method creates the variable in the package's symbol table, and sets it to the initial value if one was provided.
- $metapackage->get_package_symbol($variable_name)
- Given a variable name, this method returns the variable as a
reference or undef if it does not exist. The $variable_name must
contain a leading sigil. - $metapackage->has_package_symbol($variable_name)
- Returns true if there is a package variable defined for
$variable_name. The $variable_name must contain a leading sigil. - $metapackage->remove_package_symbol($variable_name)
- This will remove the package variable specified $variable_name. The $variable_name must contain a leading sigil.
- $metapackage->remove_package_glob($glob_name)
- Given the name of a glob, this will remove that glob from the
package's symbol table. Glob names do not include a sigil. Removing the glob removes all variables and subroutines with the specified
name. - $metapackage->list_all_package_symbols($type_filter)
- This will list all the glob names associated with the current
package. These names do not have leading sigils. - You can provide an optional type filter, which should be one of
'SCALAR', 'ARRAY', 'HASH', or 'CODE'. - $metapackage->get_all_package_symbols($type_filter)
- This works much like "list_all_package_symbols", but it returns a
hash reference. The keys are glob names and the values are
references to the value for that name. - Class::MOP::Package->meta
- This will return a Class::MOP::Class instance for this class.
AUTHORS
Stevan Little <stevan@iinteractive.com>
COPYRIGHT AND LICENSE
Copyright 2006-2010 by Infinity Interactive, Inc.
<http://www.iinteractive.com>
- This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.