From: Yuval Kogman Date: Sun, 10 Aug 2008 21:43:01 +0000 (+0000) Subject: blah X-Git-Tag: 0_64_01~43 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=2f1f7e5ab9780a927b1930b76ec231d98eb20e27;p=gitmo%2FClass-MOP.git blah --- diff --git a/lib/Class/MOP/Package.pm b/lib/Class/MOP/Package.pm index a712143..9324418 100644 --- a/lib/Class/MOP/Package.pm +++ b/lib/Class/MOP/Package.pm @@ -243,11 +243,11 @@ sub get_all_package_symbols { # for some reason this nasty impl is orders of magnitude aster than a clean version if ( $type_filter eq 'CODE' ) { - my $pkg = $self->name; + my $pkg; no strict 'refs'; return map { (ref($namespace->{$_}) - ? ( $_ => \&{"${pkg}::$_"} ) + ? ( $_ => \&{$pkg ||= $self->name . "::$_"} ) : ( *{$namespace->{$_}}{CODE} ? ( $_ => *{$namespace->{$_}}{$type_filter} ) : ()))