From: Yuval Kogman Date: Wed, 13 Aug 2008 21:20:28 +0000 (+0000) Subject: _enw for Method::Constructor X-Git-Tag: 0_64_01~23 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=28b97befb03d8d5f603018eca706ca3cfe23a37d;p=gitmo%2FClass-MOP.git _enw for Method::Constructor --- diff --git a/lib/Class/MOP/Method/Constructor.pm b/lib/Class/MOP/Method/Constructor.pm index 6f9d221..466eee8 100644 --- a/lib/Class/MOP/Method/Constructor.pm +++ b/lib/Class/MOP/Method/Constructor.pm @@ -23,16 +23,7 @@ sub new { ($options{package_name} && $options{name}) || confess "You must supply the package_name and name parameters $Class::MOP::Method::UPGRADE_ERROR_TEXT"; - my $self = bless { - # from our superclass - 'body' => undef, - 'package_name' => $options{package_name}, - 'name' => $options{name}, - # specific to this subclass - 'options' => $options{options} || {}, - 'associated_metaclass' => $options{metaclass}, - 'is_inline' => ($options{is_inline} || 0), - } => $class; + my $self = $class->_new(%options); # we don't want this creating # a cycle in the code, if not @@ -44,6 +35,21 @@ sub new { return $self; } +sub _new { + my ( $class, %options ) = @_; + + bless { + # from our superclass + 'body' => undef, + 'package_name' => $options{package_name}, + 'name' => $options{name}, + # specific to this subclass + 'options' => $options{options} || {}, + 'associated_metaclass' => $options{metaclass}, + 'is_inline' => ($options{is_inline} || 0), + }, $class; +} + ## accessors sub options { (shift)->{'options'} }