Class::MOP::Package(3p)

NAME
Class::MOP::Package - Package Meta Object

DESCRIPTION
This is an abstraction of a Perl 5 package, it is a superclass of Class::MOP::Class and provides all of the symbol table introspection methods.

INHERITANCE
Class::MOP::Package is a subclass of Class::MOP::Object

METHODS

meta
    Returns a metaclass for this package.

initialize ($package_name)
    This will initialize a Class::MOP::Package instance which represents the package of $package_name.

reinitialize ($package_name, %options)
    This removes the old metaclass, and creates a new one in it's place. Do not use this unless you really know what you are doing, it could very easily make a very large mess of your program.

name
    This is a read-only attribute which returns the package name for the given instance.

namespace
    This returns a HASH reference to the symbol table. The keys of the HASH are the symbol names, and the values are typeglob references.

add_package_symbol ($variable_name, ?$initial_value)
    Given a $variable_name, which must contain a leading sigil, this method will create that variable within the package which houses the class. It also takes an optional $initial_value, which must be a reference of the same type as the sigil of the $variable_name implies.

get_package_symbol ($variable_name)
    This will return a reference to the package variable in $variable_name.

has_package_symbol ($variable_name)
    Returns true (1) if there is a package variable defined for $variable_name, and false (0) otherwise.

remove_package_symbol ($variable_name)
    This will attempt to remove the package variable at $variable_name.

remove_package_glob ($glob_name)
    This will attempt to remove the entire typeglob associated with $glob_name from the package.

list_all_package_symbols (?$type_filter)
    This will list all the glob names associated with the current package. By inspecting the globs returned you can discern all the variables in the package.

    By passing a $type_filter, you can limit the list to only those which match the filter (either SCALAR, ARRAY, HASH or CODE).

get_all_package_symbols (?$type_filter)
    Works exactly like "list_all_package_symbols" but returns a HASH of name => thing mapping instead of just an ARRAY of names.

AUTHORS
Stevan Little <stevan@iinteractive.com>

COPYRIGHT AND LICENSE
Copyright 2006-2008 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.