X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FClass%2FMOP%2FPackage.pm;h=5b42565f8cb2dc92657b9e14fadeff4898495111;hb=0bfc85b88523ddd75e0868d6ec1244f4365bda07;hp=10c4622b35ee8cb1c26c25f74e8e13bb90584121;hpb=26ffbb36c3741396b796f1049a86b87cb8319c0d;p=gitmo%2FClass-MOP.git diff --git a/lib/Class/MOP/Package.pm b/lib/Class/MOP/Package.pm index 10c4622..5b42565 100644 --- a/lib/Class/MOP/Package.pm +++ b/lib/Class/MOP/Package.pm @@ -19,25 +19,25 @@ sub initialize { my $package_name = shift; # we hand-construct the class # until we can bootstrap it - $class->_new( + $class->_new({ 'package' => $package_name, - ); + }); } sub _new { - my ( $class, @args ) = @_; - - bless { - # NOTE: - # because of issues with the Perl API - # to the typeglob in some versions, we - # need to just always grab a new - # reference to the hash in the accessor. - # Ideally we could just store a ref and - # it would Just Work, but oh well :\ - 'namespace' => \undef, - @args, - }, $class; + my $class = shift; + my $options = @_ == 1 ? $_[0] : {@_}; + + # NOTE: + # because of issues with the Perl API + # to the typeglob in some versions, we + # need to just always grab a new + # reference to the hash in the accessor. + # Ideally we could just store a ref and + # it would Just Work, but oh well :\ + $options->{namespace} ||= \undef; + + bless $options, $class; } # Attributes