X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FUtil.pm;fp=lib%2FMouse%2FUtil.pm;h=ddad56d5290c44ebe2c59afa4b8b6ca785344f28;hb=61188096b68393d96286e5579bfd2129cdfd6fb7;hp=e94ca84b4865072440b737dc6a14d3a4b6ac1e3f;hpb=eea1593ff75b2d842a504b2db5f6ebe5111ac320;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Util.pm b/lib/Mouse/Util.pm index e94ca84..ddad56d 100644 --- a/lib/Mouse/Util.pm +++ b/lib/Mouse/Util.pm @@ -138,8 +138,6 @@ BEGIN { }; # ^^^^^ CODE TAKEN FROM MRO::COMPAT ^^^^^ - eval{ require Class::C3 }; - # MRO::Compat::__get_linear_isa has no prototype, so # we define a prototyped version for compatibility with core's # See also MRO::Compat::__get_linear_isa. @@ -151,9 +149,16 @@ BEGIN { our %MRO; $type = exists $MRO{$classname} ? 'c3' : 'dfs'; } - return $type eq 'c3' - ? [calculateMRO($classname)] - : $_get_linear_isa_dfs->($classname); + if($type eq 'c3'){ + require Class::C3; + return [ calculateMRO($classname) ]; + } + elsif($type eq 'dfs'){ + return $_get_linear_isa_dfs->($classname); + } + else{ + Carp::croak("Unknown mro type '$type'"); + } }; }