X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FClass%2FMOP.pm;h=9a0dab41eee80d4158d709c8a5da2bbdeb8a2c52;hb=7329b9e22f165fcc4b0f688986197ca5f7e109ff;hp=5f9be08143ffa8a04c57f287a22a89c710141fe0;hpb=e4b6016c737026ecad94dc1dab2f7ee1671bc2f4;p=gitmo%2FClass-MOP.git diff --git a/lib/Class/MOP.pm b/lib/Class/MOP.pm index 5f9be08..9a0dab4 100644 --- a/lib/Class/MOP.pm +++ b/lib/Class/MOP.pm @@ -31,7 +31,7 @@ BEGIN { *check_package_cache_flag = \&mro::get_pkg_gen; } -our $VERSION = '0.67'; +our $VERSION = '0.70'; our $XS_VERSION = $VERSION; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -101,7 +101,8 @@ sub _load_pure_perl { } sub load_first_existing_class { - my @classes = @_; + my @classes = @_ + or return; foreach my $class (@classes) { unless ( _is_valid_class_name($class) ) { @@ -124,19 +125,17 @@ sub load_first_existing_class { } } - if ($found) { - return get_metaclass_by_name($found) || $found; - } + return $found if $found; confess join( "\n", map { sprintf( - "Could not load class (%s) because: %s", $_, + "Could not load class (%s) because : %s", $_, $exceptions{$_} ) } @classes - ) if keys %exceptions; + ); } sub _try_load_one_class { @@ -155,7 +154,8 @@ sub _try_load_one_class { } sub load_class { - load_first_existing_class($_[0]); + my $class = load_first_existing_class($_[0]); + return get_metaclass_by_name($class) || $class; } sub _is_valid_class_name { @@ -950,9 +950,8 @@ B Given a list of class names, this function will attempt to load each one in turn. -If it finds a class it can load, it will return that class's -metaclass. If none of the classes can be loaded, it will throw an -exception. +If it finds a class it can load, it will return that class' name. +If none of the classes can be loaded, it will throw an exception. =back