use hash refs with _new
[gitmo/Class-MOP.git] / lib / Class / MOP / Method.pm
index ab56ffc..ecf7cc4 100644 (file)
@@ -42,7 +42,7 @@ sub wrap {
     ($params{package_name} && $params{name})
         || confess "You must supply the package_name and name parameters $UPGRADE_ERROR_TEXT";
 
-    my $self = (ref($class) || $class)->_new(%params);
+    my $self = (ref($class) || $class)->_new(\%params);
 
     weaken($self->{associated_metaclass}) if $self->{associated_metaclass};
 
@@ -50,13 +50,14 @@ sub wrap {
 }
 
 sub _new {
-    my ( $class, %params ) = @_;
+    my $class = shift;
+    my $params = @_ == 1 ? $_[0] : {@_};
 
     my $self = bless {
-        'body'                 => $params{body},
-        'associated_metaclass' => $params{associated_metaclass},
-        'package_name'         => $params{package_name},
-        'name'                 => $params{name},
+        'body'                 => $params->{body},
+        'associated_metaclass' => $params->{associated_metaclass},
+        'package_name'         => $params->{package_name},
+        'name'                 => $params->{name},
     } => $class;
 }