diff -rup Mason-2.22-hQjl7O-orig/lib/Mason/Component/Moose.pm Mason-2.22-hQjl7O/lib/Mason/Component/Moose.pm --- Mason-2.22-hQjl7O-orig/lib/Mason/Component/Moose.pm 2014-02-01 11:45:55.000000000 -0800 +++ Mason-2.22-hQjl7O/lib/Mason/Component/Moose.pm 2014-11-22 05:39:16.000000000 -0800 @@ -15,8 +15,10 @@ sub init_meta { Method::Signatures::Simple->import( into => $for_class ); MooseX::HasDefaults::RW->import( { into => $for_class } ); { + # This var must not be referenced elsewhere: + my $temp = $for_class; no strict 'refs'; - *{ $for_class . '::CLASS' } = sub () { $for_class }; # like CLASS.pm + *{ $for_class . '::CLASS' } = sub () { $temp }; # like CLASS.pm *{ $for_class . '::CLASS' } = \$for_class; } } diff -rup Mason-2.22-hQjl7O-orig/lib/Mason/Moose.pm Mason-2.22-hQjl7O/lib/Mason/Moose.pm --- Mason-2.22-hQjl7O-orig/lib/Mason/Moose.pm 2014-02-01 11:45:55.000000000 -0800 +++ Mason-2.22-hQjl7O/lib/Mason/Moose.pm 2014-11-22 05:40:19.000000000 -0800 @@ -18,8 +18,10 @@ sub init_meta { MooseX::StrictConstructor->import( { into => $for_class } ); MooseX::HasDefaults::RO->import( { into => $for_class } ); { + # This var must not be referenced elsewhere: + my $temp = $for_class; no strict 'refs'; - *{ $for_class . '::CLASS' } = sub () { $for_class }; # like CLASS.pm + *{ $for_class . '::CLASS' } = sub () { $temp }; # like CLASS.pm } }