use Scalar::Util 'blessed';
use Carp 'confess';
-our $VERSION = '0.71_01';
+our $VERSION = '0.76';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
} else {
my $meta = ( ref $class || $class )->_new({
'package' => $package_name,
+ %options,
});
Class::MOP::store_metaclass_by_name($package_name, $meta);
my $namespace = $self->namespace;
- return %$namespace unless defined $type_filter;
+ return $namespace unless defined $type_filter;
+ my %ret;
# for some reason this nasty impl is orders of magnitude faster than a clean version
if ( $type_filter eq 'CODE' ) {
my $pkg;
no strict 'refs';
- return map {
+ %ret = map {
(ref($namespace->{$_})
? ( $_ => \&{$pkg ||= $self->name . "::$_"} )
: ( ref \$namespace->{$_} eq 'GLOB' # don't use {CODE} unless it's really a glob to prevent stringification of stubs
: () }) ) )
} keys %$namespace;
} else {
- return map {
+ %ret = map {
$_ => *{$namespace->{$_}}{$type_filter}
} grep {
!ref($namespace->{$_}) && *{$namespace->{$_}}{$type_filter}
} keys %$namespace;
}
+
+ return \%ret;
}
1;
L<Class::MOP::Class> and provides all of the symbol table
introspection methods.
+=head1 INHERITANCE
+
+B<Class::MOP::Package> is a subclass of L<Class::MOP::Object>
+
=head1 METHODS
=over 4