Modified glob asignment to be coderef assignment. As suggested by
Nick Woolley [Mon, 30 Mar 2009 10:40:59 +0000 (11:40 +0100)]
GFUGI in a comment attached to RT #42992. Indeed, we probably don't
want to clobber package variables the role may have defined with the
same name as a method.

lib/Mouse/Meta/Role.pm

index f7ebd21..13a27d8 100644 (file)
@@ -101,7 +101,7 @@ sub apply {
             if ($args{alias} && $args{alias}->{$name}) {
                 my $dstname = $args{alias}->{$name};
                 unless ($classname->can($dstname)) {
-                    *{"${classname}::${dstname}"} = *$role_function;
+                    *{"${classname}::${dstname}"} = \&$role_function;
                 }
             }
         }
@@ -192,7 +192,7 @@ sub combine_apply {
                 if ($args{alias} && $args{alias}->{$name}) {
                     my $dstname = $args{alias}->{$name};
                     unless ($classname->can($dstname)) {
-                        *{"${classname}::${dstname}"} = *$role_function;
+                        *{"${classname}::${dstname}"} = \&$role_function;
                     }
                 }
             }